本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)多線程導(dǎo)出方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的數(shù)據(jù)累計(jì)起來(lái)。對(duì)于一個(gè)運(yùn)營(yíng)中的用戶平臺(tái),會(huì)出現(xiàn)海量的數(shù)據(jù)需要處理和分析。這就需要數(shù)據(jù)的導(dǎo)入導(dǎo)出以及備份等工作。通常的數(shù)據(jù)導(dǎo)出是在數(shù)據(jù)庫(kù)層面進(jìn)行的。
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場(chǎng)的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲(chǔ)和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫(kù)有很多種類型,從最簡(jiǎn)單的存儲(chǔ)有各種數(shù)據(jù)的表格到能夠進(jìn)行海量數(shù)據(jù)存儲(chǔ)的大型數(shù)據(jù)庫(kù)系統(tǒng)都在各個(gè)方面得到了廣泛的應(yīng)用。
數(shù)據(jù)庫(kù)中的數(shù)據(jù)是為眾多用戶所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用數(shù)據(jù)庫(kù)中的數(shù)據(jù);多個(gè)用戶可以同時(shí)共享數(shù)據(jù)庫(kù)中的數(shù)據(jù)資源,即不同的用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶對(duì)信息內(nèi)容的要求,同時(shí)也滿足了各用戶之間信息通信的要求。
隨著云時(shí)代的來(lái)臨,大數(shù)據(jù)(Big data)也吸引了越來(lái)越多的關(guān)注。《著云臺(tái)》的分析師團(tuán)隊(duì)認(rèn)為,大數(shù)據(jù)(Big data)通常用來(lái)形容一個(gè)公司創(chuàng)造的大量非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)在下載到關(guān)系型數(shù)據(jù)庫(kù)用于分析時(shí)會(huì)花費(fèi)過(guò)多時(shí)間和金錢。大數(shù)據(jù)分析常和云計(jì)算聯(lián)系到一起,因?yàn)閷?shí)時(shí)的大型數(shù)據(jù)集分析需要像MapReduce一樣的框架來(lái)向數(shù)十、數(shù)百或甚至數(shù)千的電腦分配工作。
大數(shù)據(jù)需要特殊的技術(shù),以有效地處理大量的容忍經(jīng)過(guò)時(shí)間內(nèi)的數(shù)據(jù)。適用于大數(shù)據(jù)的技術(shù),包括大規(guī)模并行處理(MPP)數(shù)據(jù)庫(kù)、數(shù)據(jù)挖掘電網(wǎng)、分布式文件系統(tǒng)、分布式數(shù)據(jù)庫(kù)、云計(jì)算平臺(tái)、互聯(lián)網(wǎng)和可擴(kuò)展的存儲(chǔ)系統(tǒng)。
大數(shù)據(jù)就是互聯(lián)網(wǎng)發(fā)展到現(xiàn)今階段的一種表象或特征而已,沒(méi)有必要神話它或?qū)λ3志次分?,在以云?jì)算為代表的技術(shù)創(chuàng)新大幕的襯托下,這些原本很難收集和使用的數(shù)據(jù)開(kāi)始容易被利用起來(lái)了,通過(guò)各行各業(yè)的不斷創(chuàng)新,大數(shù)據(jù)會(huì)逐步為人類創(chuàng)造更多的價(jià)值。
數(shù)據(jù)導(dǎo)出和備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲(chǔ)介質(zhì)的過(guò)程。傳統(tǒng)的數(shù)據(jù)備份主要是采用內(nèi)置或外置的磁帶機(jī)進(jìn)行冷備份。但是這種方式只能防止操作失誤等人為故障,而且其恢復(fù)時(shí)間也很長(zhǎng)。隨著技術(shù)的不斷發(fā)展,數(shù)據(jù)的海量增加,不少的企業(yè)開(kāi)始采用網(wǎng)絡(luò)備份。網(wǎng)絡(luò)備份一般通過(guò)專業(yè)的數(shù)據(jù)存儲(chǔ)管理軟件結(jié)合相應(yīng)的硬件和存儲(chǔ)設(shè)備來(lái)實(shí)現(xiàn)。
導(dǎo)入導(dǎo)出,是數(shù)據(jù)庫(kù)的一種專用命令。這里的數(shù)據(jù)庫(kù)指的是軟件方面的所有與之有關(guān)的數(shù)據(jù)庫(kù)。不同數(shù)據(jù)庫(kù)對(duì)于導(dǎo)入導(dǎo)出的要求不同。
例如,微軟的ACCSS數(shù)據(jù)庫(kù),是數(shù)據(jù)庫(kù)中擁有比較傻瓜的導(dǎo)入導(dǎo)出。同樣,微軟其它辦公軟件也擁有相同的功能,直接把數(shù)據(jù)導(dǎo)入到新建的文件就可以了。導(dǎo)入導(dǎo)出的字段的多少不受限制。蓮花軟件則是比較嚴(yán)厲的數(shù)據(jù)庫(kù)。在導(dǎo)入導(dǎo)出時(shí)必須把字段一一對(duì)應(yīng),才可以導(dǎo)入導(dǎo)出成功。包括了APPROACH,LOTUS 123辦公軟件,而APPROACH數(shù)據(jù)庫(kù)僅有108個(gè)字段。而在電影動(dòng)畫業(yè)采用的動(dòng)畫制造軟件,如FLASH,這里的導(dǎo)入導(dǎo)出,實(shí)際上就是把制作動(dòng)畫的元素、舞臺(tái)和元素庫(kù),導(dǎo)入到單獨(dú)的動(dòng)畫,導(dǎo)出到不同的場(chǎng)景和舞臺(tái)。
現(xiàn)有技術(shù)中,對(duì)于數(shù)據(jù)的導(dǎo)入導(dǎo)出通常會(huì)采用單線程的方式進(jìn)行,按照數(shù)據(jù)的先后順序等,逐一導(dǎo)入導(dǎo)出數(shù)據(jù)。然而,當(dāng)數(shù)據(jù)量很大的時(shí)候,導(dǎo)入導(dǎo)出的效率也會(huì)明顯降低,從而影響用戶體驗(yàn)。因而,亟需要一種提高數(shù)據(jù)導(dǎo)入導(dǎo)出效率的方案,以提高對(duì)數(shù)據(jù)導(dǎo)入導(dǎo)出的速度和效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)多線程導(dǎo)出方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中大數(shù)據(jù)量情況下數(shù)據(jù)導(dǎo)出效率低下的問(wèn)題。
本發(fā)明提供一種數(shù)據(jù)多線程導(dǎo)出方法,包括:
預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;
根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組,每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;
將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。
所述方法還包括:
所述導(dǎo)出數(shù)據(jù)的線程數(shù)M根據(jù)實(shí)際可提供的線程數(shù)H設(shè)定。
所述方法還包括:
根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為N組,所述N小于M。
所述方法還包括:
將所述預(yù)導(dǎo)出的數(shù)據(jù)根據(jù)先后順序分組;
將每個(gè)線程導(dǎo)出的數(shù)據(jù)根據(jù)所述先后順序,組裝成為完整的導(dǎo)出數(shù)據(jù)。
所述方法還包括:
所述先后順序?yàn)閿?shù)據(jù)存儲(chǔ)的先后順序或讀取的先后順序。
所述方法還包括:
所述多個(gè)線程同時(shí)導(dǎo)出所述數(shù)據(jù)。
一種數(shù)據(jù)多線程導(dǎo)出系統(tǒng),包括:
線程設(shè)定單元,用于預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;
數(shù)據(jù)分組單元,用于根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組;
導(dǎo)出單元,用于將每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;
組裝單元,用于將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。
所述數(shù)據(jù)分組單元還用于根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為N組, 所述N小于M。
所述數(shù)據(jù)分組單元還用于將所述預(yù)導(dǎo)出的數(shù)據(jù)根據(jù)先后順序分組;
所述組裝單元將每個(gè)線程導(dǎo)出的數(shù)據(jù)根據(jù)所述先后順序,組裝成為完整的導(dǎo)出數(shù)據(jù)。
所述導(dǎo)出單元還用于將多個(gè)線程同時(shí)導(dǎo)出所述數(shù)據(jù)。
本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組,每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠提高數(shù)據(jù)導(dǎo)出的速度和效率,并提高數(shù)據(jù)安全性,同時(shí),對(duì)于數(shù)據(jù)導(dǎo)出的可操作性也有所改善,極大的提高了用戶體驗(yàn)度。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫的說(shuō)明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)多線程導(dǎo)出方法原理流程圖;
圖2為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)多線程導(dǎo)出系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)多線程導(dǎo)出方法原理流程圖,其中,
步驟11,預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M。
數(shù)據(jù)的導(dǎo)入導(dǎo)出,現(xiàn)有方式通常是采用單線程的方式,這樣效率比較低,不適應(yīng)大數(shù)據(jù)量時(shí)候的數(shù)據(jù)導(dǎo)入導(dǎo)出操作。要提高效率,本實(shí)施例提供了多線程的數(shù)據(jù)導(dǎo)出方式。數(shù)據(jù)導(dǎo)入的方式與導(dǎo)出同理,本實(shí)施例不做贅述。
首先需要設(shè)定導(dǎo)出數(shù)據(jù)所需要用到的線程數(shù)。這個(gè)數(shù)最小可以是1,最大根據(jù)系統(tǒng)所能支持的線程數(shù)設(shè)定。這個(gè)線程數(shù)將決定數(shù)據(jù)導(dǎo)出所支持的通道數(shù),因而,線程數(shù)M的設(shè)定,通常需要參照多個(gè)參數(shù),包括系統(tǒng)能支持的最大線程數(shù)、數(shù)據(jù)分組所能支持的線程數(shù)、數(shù)據(jù)的大小以及分組的成本等。
線程,有時(shí)被稱為輕量級(jí)進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)兒在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。就緒狀態(tài)是指線程具備運(yùn)行的所有條件,邏輯上可以運(yùn)行,在等待處理機(jī);運(yùn)行狀態(tài)是指線程占有處理機(jī)正在運(yùn)行;阻塞狀態(tài)是指線程在等待一個(gè)事件(如某個(gè)信號(hào)量),邏輯上不可執(zhí)行。每一個(gè)程序都至少有一個(gè)線程,若程序只有一個(gè)線程,那就是程序本身。
線程是程序中一個(gè)單一的順序控制流程。進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的、可調(diào)度的執(zhí)行單元,是系統(tǒng)獨(dú)立調(diào)度和分派CPU的基本單位指運(yùn)行中的程序的調(diào)度單位。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。
在多線程OS中,通常是在一個(gè)進(jìn)程中包括多個(gè)線程,每個(gè)線程都是作為利用CPU的基本單位,是花費(fèi)最小開(kāi)銷的實(shí)體。線程具有以下屬性。
1)輕型實(shí)體
線程中的實(shí)體基本上不擁有系統(tǒng)資源,只是有一點(diǎn)必不可少的、能保證獨(dú)立運(yùn)行的資源。線程的實(shí)體包括程序、數(shù)據(jù)和TCB。線程是動(dòng)態(tài)概念,它的動(dòng)態(tài)特性由線程控制塊TCB(Thread Control Block)描述。TCB包括以下信息:
(1)線程狀態(tài)。
(2)當(dāng)線程不運(yùn)行時(shí),被保存的現(xiàn)場(chǎng)資源。
(3)一組執(zhí)行堆棧。
(4)存放每個(gè)線程的局部變量主存區(qū)。
(5)訪問(wèn)同一個(gè)進(jìn)程中的主存和其它資源。
用于指示被執(zhí)行指令序列的程序計(jì)數(shù)器、保留局部變量、少數(shù)狀態(tài)參數(shù)和返回地址等的一組寄存器和堆棧。
2)獨(dú)立調(diào)度和分派的基本單位。
在多線程OS中,線程是能獨(dú)立運(yùn)行的基本單位,因而也是獨(dú)立調(diào)度和分派的基本單位。由于線程很“輕”,故線程的切換非常迅速且開(kāi)銷小(在同一進(jìn)程中的)。
3)可并發(fā)執(zhí)行。
在一個(gè)進(jìn)程中的多個(gè)線程之間,可以并發(fā)執(zhí)行,甚至允許在一個(gè)進(jìn)程中所有線程都能并發(fā)執(zhí)行;同樣,不同進(jìn)程中的線程也能并發(fā)執(zhí)行,充分利用和發(fā)揮了處理機(jī)與外圍設(shè)備并行工作的能力。
4)共享進(jìn)程資源。
在同一進(jìn)程中的各個(gè)線程,都可以共享該進(jìn)程所擁有的資源,這首先表現(xiàn)在:所有線程都具有相同的地址空間(進(jìn)程的地址空間),這意味著,線程可以訪問(wèn)該地址空間的每一個(gè)虛地址;此外,還可以訪問(wèn)進(jìn)程所擁有的已打開(kāi)文件、定時(shí)器、信號(hào)量機(jī)構(gòu)等。由于同一個(gè)進(jìn)程內(nèi)的線程共享內(nèi)存和文件,所以線程之間互相通信不必調(diào)用內(nèi)核。
當(dāng)創(chuàng)建一個(gè)新的進(jìn)程時(shí),也創(chuàng)建一個(gè)新的線程,進(jìn)程中的線程可以在同一 進(jìn)程中創(chuàng)建新的線程中創(chuàng)建新的線程。
線程可以正常終止自己,也可能某個(gè)線程執(zhí)行錯(cuò)誤,由其它線程強(qiáng)行終止。終止線程操作主要負(fù)責(zé)釋放線程占有的寄存器和棧。
當(dāng)線程等待每個(gè)事件無(wú)法運(yùn)行時(shí),停止其運(yùn)行。
當(dāng)阻塞線程的事件發(fā)生時(shí),將被阻塞的線程狀態(tài)置為就緒態(tài),將其掛到就緒隊(duì)列。進(jìn)程仍然具有與執(zhí)行相關(guān)的狀態(tài)。例如,所謂進(jìn)程處于“執(zhí)行”狀態(tài),實(shí)際上是指該進(jìn)程中的某線程正在執(zhí)行。對(duì)進(jìn)程施加的與進(jìn)程狀態(tài)有關(guān)的操作,也對(duì)其線程起作用。例如,把某個(gè)進(jìn)程掛起時(shí),該進(jìn)程中的所有線程也都被掛起,激活也是同樣。
進(jìn)程是資源分配的基本單位。所有與該進(jìn)程有關(guān)的資源,都被記錄在進(jìn)程控制塊PCB中。以表示該進(jìn)程擁有這些資源或正在使用它們。
另外,進(jìn)程也是搶占處理機(jī)的調(diào)度單位,它擁有一個(gè)完整的虛擬地址空間。當(dāng)進(jìn)程發(fā)生調(diào)度時(shí),不同的進(jìn)程擁有不同的虛擬地址空間,而同一進(jìn)程內(nèi)的不同線程共享同一地址空間。
與進(jìn)程相對(duì)應(yīng),線程與資源分配無(wú)關(guān),它屬于某一個(gè)進(jìn)程,并與進(jìn)程內(nèi)的其他線程一起共享進(jìn)程的資源。
線程只由相關(guān)堆棧(系統(tǒng)棧或用戶棧)寄存器和線程控制表TCB組成。寄存器可被用來(lái)存儲(chǔ)線程內(nèi)的局部變量,但不能存儲(chǔ)其他線程的相關(guān)變量。
通常在一個(gè)進(jìn)程中可以包含若干個(gè)線程,它們可以利用進(jìn)程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。由于線程比進(jìn)程更小,基本上不擁有系統(tǒng)資源,故對(duì)它的調(diào)度所付出的開(kāi)銷就會(huì)小得多,能更高效的提高系統(tǒng)內(nèi)多個(gè)程序間并發(fā)執(zhí)行的程度,從而顯著提高系統(tǒng)資源的利用率和吞吐量。因而近年來(lái)推出的通用操作系統(tǒng)都引入了線程,以便進(jìn)一步提高系統(tǒng)的并發(fā)性,并把它視為現(xiàn)代操作系統(tǒng)的一個(gè)重要指標(biāo)。
線程與進(jìn)程的區(qū)別可以歸納為以下4點(diǎn):
1)地址空間和其它資源(如打開(kāi)文件):進(jìn)程間相互獨(dú)立,同一進(jìn)程的各線程間共享。某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見(jiàn)。
2)通信:進(jìn)程間通信IPC,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來(lái)進(jìn)行通信——需要進(jìn)程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性。
3)調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。
4)在多線程OS中,進(jìn)程不是一個(gè)可執(zhí)行的實(shí)體。
本實(shí)施例中,利用多線程的原理進(jìn)行數(shù)據(jù)導(dǎo)出,實(shí)際上并不一定只程序意義上的多線程,只是利用多種途徑和進(jìn)程同時(shí)進(jìn)行數(shù)據(jù)導(dǎo)出操作。
步驟12,根據(jù)線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組,每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出。
進(jìn)一步來(lái)說(shuō),線程數(shù)M實(shí)際上是系統(tǒng)可以承載或者可以分配的最高的數(shù)量,而相應(yīng)的,對(duì)于預(yù)導(dǎo)出的數(shù)據(jù),顯然也需要分組,分組的數(shù)量就是線程數(shù)M。這樣可以保證線程數(shù)量與數(shù)據(jù)分組數(shù)量的一致。
顯然,這里數(shù)據(jù)的分組不一定輸M組,也可以分為N組,N小于等于M即可。也就是說(shuō),數(shù)據(jù)分組數(shù)量可以小于線程數(shù),這樣,同樣可以保障數(shù)據(jù)的傳輸效率。
對(duì)于數(shù)據(jù)的分組,可以輸將預(yù)導(dǎo)出的數(shù)據(jù)根據(jù)先后順序來(lái)分組。這里的先后順序,可以是預(yù)導(dǎo)出數(shù)據(jù)的存儲(chǔ)順序或者讀取順序,或者也可以是堆棧的出入棧順序等。這個(gè)先后順序主要是為了使得不同線程導(dǎo)出的數(shù)據(jù)互相不重復(fù),以及為了后續(xù)數(shù)據(jù)組裝方便。
數(shù)據(jù)分組后,每一組數(shù)據(jù)可以大小一致,也可以不一致。各組數(shù)據(jù)可以同時(shí)導(dǎo)出,也可以不同時(shí)導(dǎo)出。具體根據(jù)實(shí)際需要進(jìn)行。每組數(shù)據(jù)用一個(gè)線程導(dǎo)出。實(shí)際上,也可以多個(gè)線程導(dǎo)出同一組數(shù)據(jù)。
分組后的數(shù)據(jù),為了組裝方便,可以在每組數(shù)據(jù)中加入識(shí)別碼或者標(biāo)志位,以方便后續(xù)組裝。
步驟13,將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。
由于每個(gè)線程導(dǎo)出一組數(shù)據(jù),可以同時(shí)進(jìn)行。這樣,數(shù)據(jù)導(dǎo)出的效率會(huì)提高,速度會(huì)加快。但是導(dǎo)出的數(shù)據(jù)并不是完整的,每一個(gè)線程導(dǎo)出數(shù)據(jù)的一部分,需要組裝后成為完整的導(dǎo)出數(shù)據(jù)。
組裝數(shù)據(jù)可以根據(jù)之前分組時(shí)候的先后順序,也可以采用分組時(shí)候加入的識(shí)別碼或者標(biāo)志位。組裝后的數(shù)據(jù)為完整的導(dǎo)出數(shù)據(jù),可以進(jìn)行備份等操作。
本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組,每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠提高數(shù)據(jù)導(dǎo)出的速度和效率,并提高數(shù)據(jù)安全性,同時(shí),對(duì)于數(shù)據(jù)導(dǎo)出的可操作性也有所改善,極大的提高了用戶體驗(yàn)度。
如圖2所示,為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)多線程導(dǎo)出系統(tǒng)結(jié)構(gòu)示意圖,其中,
線程設(shè)定單元21,用于預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;
數(shù)據(jù)分組單元22,用于根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組;
導(dǎo)出單元23,用于將每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;
組裝單元24,用于將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。
進(jìn)一步的,上述數(shù)據(jù)分組單元22還用于根據(jù)所述線程數(shù)M將預(yù)導(dǎo)出的數(shù)據(jù)分為N組,所述N小于M。
進(jìn)一步的,上述數(shù)據(jù)分組單元22還用于將所述預(yù)導(dǎo)出的數(shù)據(jù)根據(jù)先后順序分組;
所述組裝單元24將每個(gè)線程導(dǎo)出的數(shù)據(jù)根據(jù)所述先后順序,組裝成為完整的導(dǎo)出數(shù)據(jù)。
進(jìn)一步的,上述導(dǎo)出單元23還用于將多個(gè)線程同時(shí)導(dǎo)出所述數(shù)據(jù)。
綜上所述,本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)導(dǎo)出數(shù)據(jù)的線程數(shù)M;根據(jù)所述線程數(shù) M將預(yù)導(dǎo)出的數(shù)據(jù)分為M組,每組數(shù)據(jù)分別用一個(gè)線程導(dǎo)出;將每個(gè)線程導(dǎo)出的數(shù)據(jù)組裝成為完整的導(dǎo)出數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠提高數(shù)據(jù)導(dǎo)出的速度和效率,并提高數(shù)據(jù)安全性,同時(shí),對(duì)于數(shù)據(jù)導(dǎo)出的可操作性也有所改善,極大的提高了用戶體驗(yàn)度。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求 及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。