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