亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

共享線程實(shí)現(xiàn)和調(diào)度方法

文檔序號(hào):7960809閱讀:479來(lái)源:國(guó)知局
專利名稱:共享線程實(shí)現(xiàn)和調(diào)度方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)處理操作平臺(tái)中共享線程的實(shí)現(xiàn)和調(diào)度方法。具體的說(shuō),涉及一種可避免或減少進(jìn)行內(nèi)核的線程切換,充分利用處理器效率,并減少系統(tǒng)資源消耗的共享線程實(shí)現(xiàn)和調(diào)度方法。
背景技術(shù)
在典型的多任務(wù)操作系統(tǒng)中,系統(tǒng)的內(nèi)存空間由硬件強(qiáng)制分成用戶空間和內(nèi)核空間,用戶程序僅能運(yùn)行在用戶空間,當(dāng)需要使用內(nèi)核時(shí),需要執(zhí)行特殊的陷阱指令。傳統(tǒng)的進(jìn)程多任務(wù)系統(tǒng)就是基于這樣的結(jié)構(gòu),進(jìn)程控制結(jié)構(gòu)的全部信息都處于內(nèi)核空間,每次進(jìn)程的切換都會(huì)涉及到對(duì)內(nèi)核空間的訪問(wèn)。
多線程技術(shù)允許一個(gè)程序同時(shí)執(zhí)行多個(gè)任務(wù),并共享進(jìn)程空間中的資源。與傳統(tǒng)以進(jìn)程為單位的多任務(wù)操作系統(tǒng)不同,線程是輕量級(jí)實(shí)體,線程結(jié)構(gòu)中相當(dāng)一部分在用戶空間,允許快速的訪問(wèn)。正是由于線程的這種特征,多線程技術(shù)得到了廣泛的應(yīng)用,編制多線程程序可以得到如下的好處充分利用多處理器的并發(fā)能力而得到優(yōu)秀的性能;提高程序的吞吐量和反應(yīng)能力;減少進(jìn)程間通訊開銷,有效的利用系統(tǒng)資源;無(wú)需修改程序,即可以在單處理器或多處理器上使用。
線程是通過(guò)編寫線程庫(kù)實(shí)現(xiàn)的,目前有兩種線程庫(kù)實(shí)現(xiàn)方法。第一種方法是編寫用戶級(jí)庫(kù),依賴與已有的內(nèi)核功能,最主要的庫(kù)調(diào)用在用戶空間執(zhí)行;第二種方法是編寫內(nèi)核級(jí)庫(kù),大部分庫(kù)調(diào)用運(yùn)行于內(nèi)核空間,需要系統(tǒng)調(diào)用支持。POSIX標(biāo)準(zhǔn)的某些實(shí)現(xiàn)屬于第一種方法,而OS/2和Win32線程屬于第二種方法。由于操作系統(tǒng)內(nèi)核只了解進(jìn)程結(jié)構(gòu)(后期存在輕量級(jí)進(jìn)程LWP),線程庫(kù)的主要任務(wù)之一就是將線程通過(guò)某種方法綁定到內(nèi)核識(shí)別的進(jìn)程或是LWP上,從而由內(nèi)核實(shí)現(xiàn)線程的并發(fā)。隨著線程數(shù)量的增加,系統(tǒng)將會(huì)面臨兩個(gè)問(wèn)題。一是,線程數(shù)量的增加將會(huì)消耗內(nèi)核綁定進(jìn)程(LWP)的數(shù)量,而這一內(nèi)核資源是有限的;二是,線程數(shù)量的增加將導(dǎo)致線程切換次數(shù)的增加,每次線程的切換將可能導(dǎo)致內(nèi)核的訪問(wèn)開銷,切換花費(fèi)的時(shí)間完全是額外的。鑒于上述的問(wèn)題,在多線程的實(shí)際應(yīng)用上存在著一定的限制,首先線程數(shù)量不能太大,其次,線程數(shù)量到達(dá)一定數(shù)量時(shí),系統(tǒng)整體性能不能提高,甚至出現(xiàn)下降。同時(shí),每一個(gè)線程都是一個(gè)獨(dú)立的運(yùn)行實(shí)體,但是在線程的整個(gè)生命周期中,線程并不是時(shí)時(shí)刻刻都在工作,大量的時(shí)間花費(fèi)在等待可用資源上,這無(wú)疑是一種浪費(fèi)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種共享線程實(shí)現(xiàn)和調(diào)度方法,充分減少線程的切換時(shí)間;并在不增加系統(tǒng)資源消耗的前提下,充分利用系統(tǒng)資源,提供數(shù)量巨大的線程機(jī)制,以減少多線程編程在線程上的消耗。
本方法所涉及的線程分為兩種,用戶線程和系統(tǒng)線程,其中用戶線程是本方法實(shí)現(xiàn)的線程,系統(tǒng)線程是由其他線程庫(kù)提供的線程機(jī)制,用戶線程構(gòu)筑在系統(tǒng)線程之上。下文提及的線程均指用戶線程。
線程的構(gòu)成包括線程標(biāo)識(shí),線程入口和事件接收區(qū)幾個(gè)主要部分,這幾個(gè)部分由線程控制塊管理,線程控制塊處于用戶空間。整個(gè)線程的實(shí)現(xiàn)和調(diào)度方法如下一種共享線程實(shí)現(xiàn)和調(diào)度方法,采用下列步驟1、程創(chuàng)建,以完成線程控制塊的設(shè)置和線程綁定,線程控制塊的設(shè)置包括線程入口設(shè)置、事件接收區(qū)地址申請(qǐng)及線程狀態(tài)初始化;2、程激活;3、線程運(yùn)行;以接受事件觸發(fā)轉(zhuǎn)入運(yùn)行狀態(tài),并與系統(tǒng)線程綁定,對(duì)當(dāng)前的事件處理結(jié)束后,重新轉(zhuǎn)入空閑狀態(tài),并與系統(tǒng)線程分離。
4、線程調(diào)度,線程調(diào)度包括下列步驟a、線程系統(tǒng)維護(hù)就緒線程隊(duì)列和運(yùn)行線程隊(duì)列;b、由主線程和其他線程創(chuàng)建每一個(gè)線程;c、當(dāng)空閑線程有事件觸發(fā)時(shí),事件的發(fā)出方在發(fā)送事件的同時(shí)將接收線程從空閑狀態(tài)轉(zhuǎn)入就狀態(tài),并將該線程放入緒線程隊(duì)列;d、系統(tǒng)線程阻塞等待在就緒線程隊(duì)列上,一但有線程進(jìn)入就緒線程隊(duì)列,則系統(tǒng)線程逐個(gè)按次序綁定到就緒線程上,并將該線程轉(zhuǎn)入運(yùn)行隊(duì)列;線程狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài),隨后控制權(quán)轉(zhuǎn)入線程入口,同時(shí)輸入觸發(fā)此次運(yùn)行的事件,線程運(yùn)行;e、當(dāng)線程對(duì)當(dāng)前事件處理完成后,查看其事件接收區(qū)是否有其他事件存在,如果有,則該線程從運(yùn)行線程隊(duì)列轉(zhuǎn)入就緒線程隊(duì)列;如果沒有,該線程退出運(yùn)行線程隊(duì)列,其狀態(tài)轉(zhuǎn)換成空閑狀態(tài);f、在每次線程狀態(tài)的切換時(shí),都伴隨著系統(tǒng)線程數(shù)量的重新計(jì)算,根據(jù)當(dāng)前線程總數(shù),就緒線程數(shù),運(yùn)行線程數(shù),空閑線程數(shù),系統(tǒng)線程數(shù),計(jì)算出是否需要增加或是減少系統(tǒng)線程的數(shù)量;5、線程的退出;線程的退出以完成線程數(shù)據(jù)的清除,線程標(biāo)識(shí)的釋放,并調(diào)整系統(tǒng)線程數(shù)量。
共享線程實(shí)現(xiàn)和調(diào)度方法的線程創(chuàng)建中,線程入口設(shè)置包括,確定一個(gè)唯一線程的線程標(biāo)識(shí)、線程入口地址的定義及線程入口參數(shù)的指定。
共享線程實(shí)現(xiàn)和調(diào)度方法的線程激活中,線程的激活可以在線程創(chuàng)建的同時(shí),也可以在線程創(chuàng)建后由調(diào)用者進(jìn)行。
共享線程實(shí)現(xiàn)和調(diào)度方法的線程運(yùn)行的觸發(fā)事件可以是線程之間的消息、外界輸入的信息或線程激活。
本發(fā)明提出的線程實(shí)現(xiàn)和調(diào)度方法應(yīng)用于多線程系統(tǒng)中,具有以下有益效果(1)線程結(jié)構(gòu)數(shù)據(jù)位于用戶空間,線程的操作(創(chuàng)建,切換,退出)不涉及任何的內(nèi)核空間的訪問(wèn),速度快。
(2)線程數(shù)量不受到系統(tǒng)資源的限制,可以提供數(shù)量巨大的線程。
(3)只有運(yùn)行狀態(tài)的線程占用系統(tǒng)線程資源,并且線程在結(jié)束當(dāng)前事件處理后會(huì)盡可能釋放系統(tǒng)線程資源,使系統(tǒng)線程資源得到充分的利用。
(4)在線程的生命周期中,多個(gè)線程共享一個(gè)系統(tǒng)線程,使得系統(tǒng)線程數(shù)量相比線程數(shù)大大減少,從而減少系統(tǒng)線程的切換時(shí)間,提高系統(tǒng)運(yùn)行效率。


圖1為本發(fā)明的線程控制塊結(jié)構(gòu)示意圖;圖2為本發(fā)明的線程狀態(tài)切換示意圖;圖3為本發(fā)明的線程調(diào)度示意圖;圖4為本發(fā)明的線程運(yùn)行和調(diào)度流程示意圖。
附圖中a為空閑線程,b為就緒線程,c為運(yùn)行線程,d為阻塞線程,e為系統(tǒng)線程。
具體實(shí)施方法具體的講整個(gè)線程的實(shí)現(xiàn)和調(diào)度方法為1.線程的創(chuàng)建線程的創(chuàng)建主要完成線程控制塊的設(shè)置和線程綁定,線程控制塊的設(shè)置包括線程入口的設(shè)置(線程入口是線程被調(diào)度時(shí)執(zhí)行代碼的起始點(diǎn),可以使用指向該起始點(diǎn)的地址表示),線程入口的設(shè)置就是將該地址保存在線程控制塊中;事件接收區(qū)申請(qǐng)與初始化(事件接收區(qū)為一內(nèi)存緩沖區(qū),它的申請(qǐng)就是獲取一塊可用的內(nèi)存空間,并將其中的內(nèi)容設(shè)置為初始狀態(tài)),這些工作完全在用戶空間完成,不涉及任何內(nèi)核空間的訪問(wèn),因此效率是很高的。線程的綁定主要是根據(jù)當(dāng)前線程使用狀況,決定是否需要?jiǎng)?chuàng)建新的系統(tǒng)線程參與線程的調(diào)度。該操作對(duì)外提供相應(yīng)的元語(yǔ)。
2、線程的激活線程創(chuàng)建后處于初始狀態(tài),需要事件觸發(fā)方可真正的工作,這種初始的觸發(fā)稱為線程的激活,線程在激活之前,不處理接收到的事件。線程的激活可以在線程創(chuàng)建的同時(shí)完成,也可以在線程創(chuàng)建后由調(diào)用者顯式的進(jìn)行。線程的激活是一次線程狀態(tài)的切換操作(從初始狀態(tài)切換至其他狀態(tài))。
3、線程的運(yùn)行線程的運(yùn)行是由事件觸發(fā)的,事件的種類可以是多種多樣的,主要包括線程之間的消息,外界輸入等,上面提到的線程激活也是一種事件。當(dāng)有事件觸發(fā)后,線程轉(zhuǎn)入運(yùn)行狀態(tài),并與系統(tǒng)線程綁定,對(duì)當(dāng)前的事件處理結(jié)束后,重新轉(zhuǎn)入空閑狀態(tài),并與系統(tǒng)線程分離。
4、線程的調(diào)度線程的調(diào)度是本方法的主要部分,線程的調(diào)度主要完成如下幾個(gè)功能線程狀態(tài)的切換,線程就緒隊(duì)列的管理,線程運(yùn)行池的管理以及相應(yīng)的入隊(duì)出隊(duì)操作。本方法提出的線程調(diào)度并不是由一個(gè)獨(dú)立的實(shí)體完成,線程系統(tǒng)中所有的運(yùn)行線程共同完成整個(gè)線程機(jī)制的調(diào)度工作。具體工作如下(1)線程系統(tǒng)維護(hù)數(shù)據(jù)結(jié)構(gòu),就緒線程隊(duì)列和運(yùn)行線程池;這兩個(gè)數(shù)據(jù)結(jié)構(gòu)的維護(hù)完全是數(shù)據(jù)的操作,包括向隊(duì)列或池中增加一個(gè)數(shù)據(jù),或從隊(duì)列和池中取出一個(gè)數(shù)據(jù),其中隊(duì)列維護(hù)進(jìn)入隊(duì)列數(shù)據(jù)的次序,采用先進(jìn)先出的原則,而池則不需要維護(hù)這樣的次序。
(2)每一個(gè)線程可由主線程(進(jìn)程內(nèi)固有的系統(tǒng)線程)和其他線程創(chuàng)建線程的創(chuàng)建是通過(guò)線程創(chuàng)建元語(yǔ)實(shí)現(xiàn)的。
(3)某個(gè)空閑線程有事件觸發(fā)時(shí),事件的發(fā)出方在發(fā)送事件(將事件放入接收線程的事件接收區(qū))的同時(shí),將接收線程從空閑狀態(tài)轉(zhuǎn)入就緒狀態(tài),并將該線程放入就緒線程隊(duì)列。
(4)系統(tǒng)線程阻塞等待在就緒線程隊(duì)列上,一旦有線程進(jìn)入就緒隊(duì)列,則系統(tǒng)線程逐個(gè)按次序綁定到就緒線程上,并將該線程轉(zhuǎn)入運(yùn)行隊(duì)列,線程狀態(tài)轉(zhuǎn)換為運(yùn)行狀態(tài),隨后控制權(quán)轉(zhuǎn)入線程入口,同時(shí)輸入觸發(fā)此次運(yùn)行的事件,線程運(yùn)行(對(duì)事件的處理)。
(5)當(dāng)線程對(duì)當(dāng)前事件處理完成后,查看其事件接收區(qū)是否有其他事件存在,如果有,則該線程從運(yùn)行線程隊(duì)列轉(zhuǎn)入就緒線程隊(duì)列;如果沒有,該線程退出運(yùn)行線程隊(duì)列,其狀態(tài)轉(zhuǎn)換成空閑狀態(tài)。
(6)在每次線程狀態(tài)的切換時(shí),都伴隨著系統(tǒng)線程數(shù)量的重新計(jì)算,根據(jù)當(dāng)前線程總數(shù),就緒線程數(shù),運(yùn)行線程數(shù),空閑線程數(shù),系統(tǒng)線程數(shù),計(jì)算出是否需要增加或是減少系統(tǒng)線程的數(shù)量。
5、線程的退出線程的退出完成線程數(shù)據(jù)的清除,線程標(biāo)識(shí)的釋放,并調(diào)整系統(tǒng)線程數(shù)量。
如圖I所示,顯示了線程控制塊的結(jié)構(gòu),包括線程標(biāo)識(shí),線程入口地址,線程入口參數(shù),事件接收區(qū)地址,線程狀態(tài),線程屬性以及其他線程數(shù)據(jù);各部分說(shuō)明如下線程標(biāo)識(shí)用于唯一的確定一個(gè)線程,在線程入隊(duì)操作可以代替線程實(shí)體,在線程間消息發(fā)送時(shí)可以用于尋址。線程標(biāo)識(shí)必須在進(jìn)程內(nèi)唯一,可以通過(guò)統(tǒng)一的分配機(jī)制實(shí)現(xiàn),線程退出后,標(biāo)識(shí)釋放允許重復(fù)使用。
線程入口地址用于在線程運(yùn)行時(shí)控制權(quán)的傳入,入口的形式可以自行定義。
線程入口參數(shù)用于傳入線程在創(chuàng)建時(shí)指定的參數(shù)。
事件接收區(qū)地址用于存放觸發(fā)線程運(yùn)行的事件,該接收區(qū)維護(hù)事件到達(dá)的先后次序,保證先達(dá)事件先處理。
線程狀態(tài)用于指定線程生命周期的不同階段的行為,狀態(tài)是可循環(huán)的,可切換的,具體描述見圖2的說(shuō)明。
線程的屬性用于描述線程的一些固有性質(zhì),由線程創(chuàng)建時(shí)指定,在線程運(yùn)行期間可以修改部分屬性。
線程的其他數(shù)據(jù),這部分可以根據(jù)具體的實(shí)現(xiàn)自行處理。
圖2描述了線程在整個(gè)生命期擁有的各種狀態(tài)及其轉(zhuǎn)換。在線程的整個(gè)生命期中,線程的狀態(tài)包括初始狀態(tài),空閑狀態(tài),就緒狀態(tài),運(yùn)行狀態(tài),阻塞狀態(tài),關(guān)閉狀態(tài)。
初始狀態(tài)線程創(chuàng)建后即處于該狀態(tài),處于初始狀態(tài)時(shí),線程不被運(yùn)行,即使有事件觸發(fā),只有線程激活操作才可以使線程離開初始狀態(tài)。當(dāng)激活時(shí),線程的事件接收區(qū)內(nèi)沒有事件,狀態(tài)轉(zhuǎn)換為空閑狀態(tài);否則轉(zhuǎn)換為就緒狀態(tài)。
空閑狀態(tài)該狀態(tài)表示線程的事件接收區(qū)內(nèi)沒有事件,該狀態(tài)在有事件觸發(fā)下轉(zhuǎn)換為就緒狀態(tài);在有外部線程終止操作時(shí),轉(zhuǎn)換為關(guān)閉狀態(tài)。
就緒狀態(tài)該狀態(tài)表示線程在激活后,有事件觸發(fā),線程進(jìn)入就緒隊(duì)列等待運(yùn)行。當(dāng)線程到達(dá)隊(duì)列頭,并有系統(tǒng)線程綁定,則狀態(tài)轉(zhuǎn)換為運(yùn)行狀態(tài);當(dāng)在等待運(yùn)行期間有外部線程終止操作,則轉(zhuǎn)入關(guān)閉狀態(tài)。
運(yùn)行狀態(tài)當(dāng)線程被系統(tǒng)線程綁定后,則進(jìn)入運(yùn)行狀態(tài)。在運(yùn)行結(jié)束后,如果沒有事件處理,則轉(zhuǎn)入空閑狀態(tài);否則轉(zhuǎn)入就緒狀態(tài)。
阻塞狀態(tài)當(dāng)線程在運(yùn)行期間調(diào)用阻塞操作時(shí),將狀態(tài)變換成阻塞狀態(tài),阻塞結(jié)束后,會(huì)繼續(xù)進(jìn)入運(yùn)行狀態(tài),除非線程自行退出或是有外部終止,這將會(huì)使線程切換至關(guān)閉狀態(tài)。
關(guān)閉狀態(tài)當(dāng)線程在生命期內(nèi)被終止或是退出,則切換至關(guān)閉狀態(tài)。
圖3顯示了線程的調(diào)度和運(yùn)行過(guò)程。具體如下·線程創(chuàng)建時(shí),處于初始狀態(tài),在激活后線程進(jìn)入調(diào)度流程。如果當(dāng)前沒有事件觸發(fā),線程始終處于空閑狀態(tài)(如圖3中a),與系統(tǒng)線程相分離(如圖3中e)。
·當(dāng)有事件觸發(fā)某個(gè)空閑線程時(shí),該空閑線程被掛入就緒隊(duì)列(如圖3中b),排隊(duì)等待綁定。
·有一個(gè)或多個(gè)系統(tǒng)線程阻塞在就緒隊(duì)列上(如圖3中d),當(dāng)就緒隊(duì)列中存在線程時(shí),喚醒一個(gè)物理線程與其綁定,將其掛入運(yùn)行隊(duì)列,線程運(yùn)行(如圖3中c)。
·當(dāng)線程處理完當(dāng)前事件后返回,將其從運(yùn)行隊(duì)列中清除,根據(jù)其是否存在后續(xù)事件,決定切換其狀態(tài)至空閑還是就緒,并與系統(tǒng)線程分離。
·如果運(yùn)行中的線程進(jìn)行了阻塞調(diào)用,則其將被標(biāo)記為阻塞,該標(biāo)記在其被外部終止等操作中使用。
·如果運(yùn)行中的線程要求退出或是被外部終止,與其綁定的系統(tǒng)線程將根據(jù)線程的運(yùn)行情況,實(shí)施分離和終止操作。
通過(guò)線程調(diào)度如圖3所述,可以清楚的看到線程是如何運(yùn)行的。首先,線程的調(diào)度是在每一個(gè)狀態(tài)切換時(shí)進(jìn)行,在線程運(yùn)行期間是不會(huì)進(jìn)行調(diào)度的,因此線程的調(diào)度是在用戶級(jí)別進(jìn)行的,不涉及到系統(tǒng)線程的切換,因此這種調(diào)度很安全。第二,線程的調(diào)度與事件的觸發(fā)有著密切的關(guān)系,可以說(shuō)在線程的調(diào)度是通過(guò)事件驅(qū)動(dòng)的。第三,線程的調(diào)度涉及到線程與系統(tǒng)線程的綁定與分離,這個(gè)過(guò)程是動(dòng)態(tài)進(jìn)行的。
權(quán)利要求
1.一種共享線程實(shí)現(xiàn)和調(diào)度方法,其特征在于,共享線程實(shí)現(xiàn)和調(diào)度方法采用下列步驟(1)線程創(chuàng)建,以完成線程控制塊的設(shè)置和線程綁定,線程控制塊的設(shè)置包括線程入口設(shè)置、事件接收區(qū)地址申請(qǐng)及線程狀態(tài)初始化;(2)線程激活;(3)線程運(yùn)行;以接受事件觸發(fā)轉(zhuǎn)入運(yùn)行狀態(tài),并與系統(tǒng)線程綁定,對(duì)當(dāng)前的事件處理結(jié)束后,重新轉(zhuǎn)入空閑狀態(tài),并與系統(tǒng)線程分離。(4)線程調(diào)度,線程調(diào)度包括下列步驟a、線程系統(tǒng)維護(hù)就緒線程隊(duì)列和運(yùn)行線程隊(duì)列;b、由主線程和其他線程創(chuàng)建每一個(gè)線程;c、當(dāng)空閑線程有事件觸發(fā)時(shí),事件的發(fā)出方在發(fā)送事件的同時(shí)將接收線程從空閑狀態(tài)轉(zhuǎn)入就狀態(tài),并將該線程放入緒線程隊(duì)列;d、系統(tǒng)線程阻塞等待在就緒線程隊(duì)列上,一但有線程進(jìn)入就緒線程隊(duì)列,則系統(tǒng)線程逐個(gè)按次序綁定到就緒線程上,并將該線程轉(zhuǎn)入運(yùn)行隊(duì)列;線程狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài),隨后控制權(quán)轉(zhuǎn)入線程入口,同時(shí)輸入觸發(fā)此次運(yùn)行的事件,線程運(yùn)行;e、當(dāng)線程對(duì)當(dāng)前事件處理完成后,查看其事件接收區(qū)是否有其他事件存在,如果有,則該線程從運(yùn)行線程隊(duì)列轉(zhuǎn)入就緒線程隊(duì)列;如果沒有,該線程退出運(yùn)行線程隊(duì)列,其狀態(tài)轉(zhuǎn)換成空閑狀態(tài);f、在每次線程狀態(tài)的切換時(shí),都伴隨著系統(tǒng)線程數(shù)量的重新計(jì)算,根據(jù)當(dāng)前線程總數(shù),就緒線程數(shù),運(yùn)行線程數(shù),空閑線程數(shù),系統(tǒng)線程數(shù),計(jì)算出是否需要增加或是減少系統(tǒng)線程的數(shù)量;(1)線程的退出;線程的退出以完成線程數(shù)據(jù)的清除,線程標(biāo)識(shí)的釋放,并調(diào)整系統(tǒng)線程數(shù)量。
2.根據(jù)權(quán)利要求1所述的共享線程實(shí)現(xiàn)和調(diào)度方法,其特征在于,線程創(chuàng)建中線程入口設(shè)置包括確定一個(gè)唯一線程的線程標(biāo)識(shí)、線程入口地址的定義及線程入口參數(shù)的指定。
3.根據(jù)權(quán)利要求1所述的共享線程實(shí)現(xiàn)和調(diào)度方法,其特征在于,線程激活中線程的激活可以在線程創(chuàng)建的同時(shí),也可以在線程創(chuàng)建后由調(diào)用者進(jìn)行。
4.根據(jù)權(quán)利要求1所述的共享線程實(shí)現(xiàn)和調(diào)度方法,其特征在于,線程運(yùn)行的觸發(fā)事件可以是線程之間的消息、外界輸入的信息或線程激活。
全文摘要
一種涉及數(shù)據(jù)處理操作平臺(tái)中線程的實(shí)現(xiàn)和調(diào)度方法,涉及一種可避免或減少進(jìn)行內(nèi)核線程切換,充分利用處理器效率,并減少系統(tǒng)資源消耗的共享線程實(shí)現(xiàn)和調(diào)度技術(shù)。所述方法采用下列步驟:以完成線程控制塊的設(shè)置和線程綁定的線程創(chuàng)建、起動(dòng)運(yùn)行的線程激活、接受事件觸發(fā)轉(zhuǎn)入運(yùn)行狀態(tài)的線程運(yùn)行、完成線程狀態(tài)切換,就緒及運(yùn)行隊(duì)列管理等的線程調(diào)度和完成線程數(shù)據(jù)的清除,線程標(biāo)識(shí)釋放,調(diào)整系統(tǒng)線程數(shù)量的線程的退出。本發(fā)明的方法,充分減少了線程的切換時(shí)間;并在不增加系統(tǒng)資源消耗的前提下,充分利用系統(tǒng)資源,提供數(shù)量巨大的線程機(jī)制,以保證多線程編程在線程上的消耗。
文檔編號(hào)H04L12/24GK1423456SQ01139080
公開日2003年6月11日 申請(qǐng)日期2001年12月3日 優(yōu)先權(quán)日2001年12月3日
發(fā)明者譚震 申請(qǐng)人:深圳市中興通訊股份有限公司上海第二研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1