專利名稱:程序的線程群組管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種線程管理方法,特別是涉及一種在程序的線程群組中,限定線程
同時運行個數(shù)與并結(jié)合權(quán)限法則的程序的線程群組管理方法。
背景技術(shù):
—般而言,電子計算機(或電子設(shè)備)所安裝的作業(yè)系統(tǒng),或執(zhí)行的應(yīng)用程序中, 每一個程序(Process)容許多個線程(thread,或稱為執(zhí)行緒,本文均稱為線程)存在并 同時執(zhí)行。然而,各線程在運行時,必然需要系統(tǒng)或電子計算機具有的硬件資源或軟件資 源,當(dāng)此等線程需要存取到程序中同一個資源(Resource)時,易發(fā)生資源沖突(Resource contention)現(xiàn)象與競爭條件(Race Condition)。 一般解決方式是以信號(Semaphore)法 則進行處理。 請同時參閱圖1A與圖IB所示,是多個線程爭取一競爭資源的示意圖與程序編碼 示意圖。此程序110包含一第一線程111、一第二線程112與一第三線程113,此三線程爭 取一競爭資源120。 此程序110即為圖IB所示程序區(qū)段130,其中副程序131與回呼程序132是需控 制競爭資源120以進行相關(guān)數(shù)據(jù)的運算。當(dāng)?shù)谝痪€程111執(zhí)行至副程序131,是先提出一信 號(Sem即hore)請求而取得競爭資源120的控制權(quán),以進行數(shù)據(jù)的存取與計算。此時,競爭 資源120處于被保護中而無法再由第二線程112或第三線程113進行存取。
運行回呼程序132時,為避免回呼程序132需取得相同的競爭資源120,使得第 一線程111因競爭資源120被保護而無法取得,進而產(chǎn)生死結(jié),故需令第一線程111先釋 放對競爭資源120的控制權(quán),即提出釋放信號(Sem即hore)。依此方式,不斷提出與釋放 信號(Semaphore),使第一線程111在執(zhí)行副程序131與回呼程序132時皆不會產(chǎn)生死結(jié) (Deadlock)并完成其所需運算。 然而還有其他問題需要解決,即為第一線程在副程序釋放信號(Sam印hore)以 執(zhí)行回呼程序,以及在回呼程序中釋放信號(Sam印hore)而返回副程序期間,其信號 (Sam印hore)極可能被第二線程或第三線程取得而對競爭資源進行數(shù)據(jù)運算,進而更動第 一線程原計算結(jié)果,然先前技術(shù)并未提供預(yù)防計算結(jié)果被更動的技術(shù)特征,因此第一線程 即無法取得正確的計算數(shù)據(jù)。由此延伸,作業(yè)系統(tǒng)或電子設(shè)備即可能因此而執(zhí)行錯誤的軟 件運算,或硬件執(zhí)行錯誤的運作行為。 有鑒于上述現(xiàn)有的線程管理方法存在的缺陷,本發(fā)明人基于從事此類產(chǎn)品設(shè)計制 造多年豐富的實務(wù)經(jīng)驗及專業(yè)知識,并配合學(xué)理的運用,積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種 新的程序的線程群組管理方法,能夠改進一般現(xiàn)有的線程管理方法,使其更具有實用性。經(jīng) 過不斷的研究、設(shè)計,并經(jīng)反復(fù)試作及改進后,終于創(chuàng)設(shè)出確具實用價值的本發(fā)明。
發(fā)明內(nèi)容
本發(fā)明的目的在于,克服現(xiàn)有的線程管理方法存在的缺陷,而提供一種新的程序的線程群組管理方法,所要解決的技術(shù)問題是使其在程序中,將線程群組化,并限定線程群 組同時間僅有一線程運作,而且避免死結(jié)并防止取得錯誤計算數(shù)據(jù)的一種程序的線程群組 管理方法。 本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實現(xiàn)的。依據(jù)本發(fā)明提 出的一種程序的線程群組管理方法,是應(yīng)用于安裝有作業(yè)系統(tǒng)或至少一應(yīng)用程序的電子設(shè) 備,其包括以下步驟利用一群組調(diào)度(排程即調(diào)度,本文均稱為調(diào)度)單元取得可供一第 一線程運作的一執(zhí)行許可并偵測該執(zhí)行許可是否給予其它線程,以決定是否賦予該執(zhí)行許 可至該第一線程;偵測該線程群組是否有一第二線程執(zhí)行中,以決定是否停止該第一線程 并等待該第二線程完成;允許該第一線程取得所需競爭資源以完成該第一線程的運算;以 及取得該第一線程釋放的該競爭資源后判斷是否有一最高權(quán)限的第三線程存在,以喚醒該 最高權(quán)限的該第三線程。 本發(fā)明的目的及解決其技術(shù)問題還可采用以下技術(shù)措施進一步實現(xiàn)。 前述的線程群組管理方法,其中所述的偵測該線程群組是否有一第二線程執(zhí)行的
步驟包含下列步驟偵測該競爭資源是否被該第二線程占用,若偵測結(jié)果為是,則停止該第
一線程并等待該第二線程完成,若偵測結(jié)果為否,則允許該第一線程取得所需競爭資源以
完成該第一線程。 前述的線程群組管理方法,其中所述的偵測該線程群組是否有一第二線程執(zhí)行中 步驟是包含下列步驟偵測是否有任一該競爭資源被限制給該第二線程使用,若偵測結(jié)果 為是,停止該第一線程并等待該第二線程完成,若偵測結(jié)果為否,則允許該第一線程取得所 需競爭資源以完成該第一線程。 前述的線程群組管理方法,其中所述的第一線程取得所需競爭資源時,該群組調(diào) 度單元是限定該競爭資源僅為該第一線程使用,直至該第一線程完成。 前述的線程群組管理方法,其中所述的決定是否賦予該執(zhí)行許可至該第一線程步
驟是包含下列步驟利用該群組調(diào)度單元接收該第一線程發(fā)出的該執(zhí)行許可的請求;判斷
該執(zhí)行許可是否授予其它線程,若否,授予該執(zhí)行許可至該第一線程,若是,儲存該第一線 程至一等待隊列。 前述的線程群組管理方法,其中所述的儲存該第一線程至一等待隊列步驟更包含 下列步驟停止該第一線程的執(zhí)行;給予該第一線程一權(quán)限值;以及加入具有該權(quán)限值之 該第一線程于該等待隊列。 前述的線程群組管理方法,其中所述的取得該第一線程釋放的該競爭資源步驟是 包含下列步驟接收該第一線程的資源讓與請求;記錄該第一線程釋放的該競爭資源;以 及開放該競爭資源的使用權(quán)。 前述的線程群組管理方法,其中所述的判斷是否有一最高權(quán)限的第三線程存在步 驟是包含下列步驟若判斷有該最高權(quán)限的第三線程存在,取出該最高權(quán)限的第三線程并 使該最高權(quán)限的第三線程執(zhí)行。 前述的線程群組管理方法,其中所述的取出該最高權(quán)限的第三線程并使其執(zhí)行步
驟還包含下列步驟偵測最高權(quán)限的該第三線程是否僅為一個,若否,依據(jù)一限定法則取出
其一該第三線程并使其執(zhí)行,若是,取出最高權(quán)限的該第三線程并使其執(zhí)行。 前述的線程群組管理方法,其中所述的限定法則是先進先出調(diào)度法則、輪回式調(diào)
5度法則或最短行程優(yōu)先調(diào)度法則。 前述的線程群組管理方法,其中所述的每一該線程群組是對應(yīng)至少一競爭資源。
本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點和有益效果。由以上可知,為達到上述目 的,本發(fā)明提供了一種程序的線程群組管理方法,是應(yīng)用于安裝有作業(yè)系統(tǒng)或至少一應(yīng)用 程序的電子設(shè)備,此程序具有至少一個線程群組,每一線程群組對應(yīng)至少一競爭資源。此方 法中,利用一群組調(diào)度單元取得可供一第一線程運作的一執(zhí)行許可并偵測執(zhí)行許可是否給 予其它線程,以決定是否賦予執(zhí)行許可至第一線程。接著偵測線程群組中是否有一第二線 程執(zhí)行中,以決定是否停止該第一線程并等待該第二線程完成。之后允許第一線程取得所 需競爭資源以完成第一線程的運算。而第一線程運行完成后,群組調(diào)度單元取得第一線程 釋放的競爭資源后,判斷在一組第三線程中是否有一最高權(quán)限的第三線程存在,若有,則喚 醒最高權(quán)限的第三線程并使其執(zhí)行。 本發(fā)明所揭露的程序的線程群組管理方法中,其等待隊列權(quán)限最高的第三線程數(shù)
量不為一時,是通過一限定法則取出其一線程并將其喚醒執(zhí)行。此限定法則可為先進先
出調(diào)度法則(First In First 0ut, FIFO)、最短行程優(yōu)先調(diào)度法則(Shortest Job First
Scheduling, SJF)或輪回式調(diào)度法則(Round-Robin Scheduling, R. R)。 借由上述技術(shù)方案,本發(fā)明程序的線程群組管理方法至少具有下列優(yōu)點及有益效
果 —、線程群組在同一時間僅允許一線程進行運算,以避免資源沖突(Resource Contention)與競爭條件(Race Condition)。 二、群組調(diào)度單元偵測有線程正執(zhí)行中或未完成時,是停止其它線程,使執(zhí)行中的
線程可完成其運算后再釋放競爭資源。避免執(zhí)行中的線程在執(zhí)行空檔期間,競爭資源被其
它線程取得而更改其內(nèi)部數(shù)據(jù),以取得錯誤的運算數(shù)據(jù),造成錯誤的計算結(jié)果。 綜上所述,本發(fā)明是有關(guān)于一種程序的線程群組管理方法,利用一群組調(diào)度單元
取得可供一第一線程運作的一執(zhí)行許可,群組調(diào)度單元偵測線程群組有一第二線程執(zhí)行時
停止第一線程的運作,在第二線程完成后才發(fā)出執(zhí)行許可,使第一線程取得所需競爭資源
并執(zhí)行其運作。第一線程會于執(zhí)行完成時釋放取得的競爭資源,群組調(diào)度單元則呼叫等待
隊列中最高權(quán)限的第三線程,并重復(fù)直至線程全數(shù)完成。藉此方法,避免一線程因執(zhí)行回呼
機制,而讓其它線程趁機使用其所需資源,并防止線程被迫經(jīng)歷多個不同階段后才完成工
作,進而取得正確的數(shù)據(jù)。本發(fā)明具有上述諸多優(yōu)點及實用價值,其不論在線程管理方法或
功能上皆有較大的改進,,在技術(shù)上有顯著的進步,并產(chǎn)生了好用及實用的效果,且較現(xiàn)有
的線程管理方法具有增進的突出功效,從而更加適于實用,誠為一新穎、進步、實用的新設(shè)
計。而且,此方法可應(yīng)用于各種不同具有作業(yè)系統(tǒng)、具有線程運算能力的電子計算機或電子
設(shè)備,進一步的提升此方法的適用范圍。 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠 更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
圖1A是先前技術(shù)的線程爭取競爭資源的示意圖。
6
圖IB是先前技術(shù)的程序的編碼示意圖。 圖2A是本發(fā)明線程群組管理方法較佳實施例的流程圖。 圖2B是本發(fā)明線程群組管理方法較佳實施例的細部流程圖。 圖2C是本發(fā)明線程群組管理方法較佳實施例的細部流程圖。 圖3A是本發(fā)明線程群組建構(gòu)實施例的示意圖。 圖3B是本發(fā)明線程群組管理方法的競爭資源爭取實施例的示意圖。 圖3C是本發(fā)明程序?qū)嵤├木幋a示意圖。110:程序111:第一線程112:第二線程113:第三線程120:競爭資源130:程序區(qū)段131:副程序132:回呼程序310:程序311:第一線程312:第二線程313:第三線程320:競爭資源321:群組調(diào)度單元330:線程群組340:程序區(qū)段341:副程序342:回呼程序350:資源讀取P艮制
具體實施例方式
為使對本發(fā)明的目的、構(gòu)造特征及其功能有進一步的了解,茲配合相關(guān)實施例及 圖式詳細說明如下 請同時參閱圖2A、圖2B與圖2C所示,是本發(fā)明線程群組管理方法較佳實施例的流 程圖與細部流程圖,請同時參閱圖3B所示,是本發(fā)明線程群組管理方法的競爭資源爭取實 施例的示意圖。本發(fā)明較佳實施例的線程群組管理方法中的第一線程311為發(fā)出執(zhí)行許可 請求的線程,第二線程312為執(zhí)行中的線程,第三線程313為等待中的線程。而且此方法應(yīng) 用于安裝有作業(yè)系統(tǒng)或至少一應(yīng)用程序的電子設(shè)備,該線程群組管理方法包含下列步驟
利用一群組調(diào)度單元321取得可供一第一線程311運作的執(zhí)行許可并偵測執(zhí)行許 可是否給予其它線程(第二線程312與第三線程313),以決定是否賦予執(zhí)行許可至第一線 程311(步驟S210)。 先利用群組調(diào)度單元321接收第一線程311發(fā)出的執(zhí)行許可的請求(步驟S211), 此群組調(diào)度單元321是為一般電子計算機中,可運行程序、線程的調(diào)度與運算行為的硬 件組件,如中央處理器(Central Processing Unit, CPU)、微處理器(Micro Processing
Unit, MPU)、資料控制晶片......等多類不同的硬件組件,或是燒錄有管理線程的程序碼
并具有執(zhí)行此程序碼能力的硬件組件。此第一線程311是程序310新產(chǎn)生的線程或是先前 等待中的第三線程313,并從所有第三線程313中取出權(quán)限最高者,執(zhí)行許可包含競爭資源 320的控制權(quán)。此競爭資源320指系統(tǒng)所能使用的硬件硬件與軟件軟件,硬件硬件即如硬 盤、軟盤、顯示卡、晶片、內(nèi)存、熒幕等實體裝置;軟件即如程序碼所構(gòu)成的函數(shù)、物件、邏輯 運算元件、副程序等程序。取得競爭資源320即代表取得此系統(tǒng)的某一實體裝置或某一程 序的控制權(quán)。
群組調(diào)度單元321是判斷執(zhí)行許可是否授予其它線程(步驟S212),若判定結(jié)果為
否,群組調(diào)度單元321是授予執(zhí)行許可至第一線程311 (步驟S213);若是,則儲存第一線程311至一等待隊列(步驟S214)。 儲存第一線程311時,群組調(diào)度單元321停止第一線程311的執(zhí)行,接著給予此第一線程311 —權(quán)限值,最后加入具有此權(quán)限值之第一線程311于等待隊列中。
當(dāng)群組調(diào)度單元321在第一線程311開始執(zhí)行時,先偵測線程群組330是否有一第二線程312執(zhí)行中(步驟S220)。而判斷方式包含下列兩種 其一,偵測競爭資源320是否被第二線程312占用,或是正在執(zhí)行相關(guān)函數(shù)或物件。因任一線程運行時,競爭資源320被占用、函數(shù)或物件被運行等兩種狀態(tài)必然有一個成 其二,偵測是否有任一競爭資源320被限制給第二線程312使用。因任一線程執(zhí)行時,群組調(diào)度單元321將限制其所需的競爭資源320,以禁止其它線程占用,直至第二線程312完成。避免第二線程312因呼叫函數(shù)或進行回呼機制而暫時釋放競爭資源320時,被其它線程趁機占用。 若判定未有第二線程312執(zhí)行時,則允許第一線程311取得所需競爭資源320以完成第一線程311的運算(步驟S230);若判定有一第二線程312執(zhí)行中,則停止第一線程311并等待第二線程312完成(步驟S240),的后再執(zhí)行步驟S230。 此步驟主要避免第二線程312在運行中進行回呼機制(Call BackFunction)或副程序(Sub Routine)而釋放競爭資源320期間,群組調(diào)度單元321因取得資源讓與請求而誤將競爭資源320的控制權(quán)交予第一線程311。故在判定有任一第二線程312處于執(zhí)行且未完成時,即停止第一線程311,使先前執(zhí)行的第二線程312可持續(xù)保有競爭資源320而完成其工作。 取得第一線程311釋放的競爭資源320后判斷是否有一最高權(quán)限的第三線程313
存在,以喚醒最高權(quán)限的第三線程313 (步驟S250)。此步驟中,群組調(diào)度單元321接收第一
線程311的資源讓與請求(步驟S251),接著記錄第一線程311釋放的競爭資源320(步驟
S252),最后開放競爭資源320的使用權(quán)(步驟S253),以供其它線程使用。 接著偵測是否有一最高權(quán)限的第三該線程313存在(步驟S254),如前所述,若先
前判定不可執(zhí)行、被強制停止的線程皆會儲存在等待隊列中,故僅需偵測等待隊列是否儲
存一最高權(quán)限的第三線程313即可。若否,則結(jié)束群組調(diào)度單元321(步驟S256);若是,則
從等待隊列中取出最高權(quán)限的第三線程313并使其執(zhí)行(步驟S255)。 然而,群組調(diào)度單元321先偵測最高權(quán)限的第三線程313是否僅為一個(理所當(dāng)
然具有最高權(quán)限),若是,則執(zhí)行步驟S255 ;若否,則依據(jù)一限定法則取出其一最高權(quán)限的
第三線程313并使其執(zhí)行。限定法則是 其一,先進先出法則(First In First Out),在多個最高權(quán)限的線程中,取出最早儲存至等待隊列的線程并使其執(zhí)行。 其二,輪回式調(diào)度法則(Round-Robin Scheduling, R. R),依據(jù)等待順序而取出線程并使其執(zhí)行。 其三,最短行程優(yōu)先調(diào)度法則(Shortest Job First Scheduling, SJF),計算每一線程執(zhí)行預(yù)定時間,從中選出最短執(zhí)行時間的線程。
請同時參閱圖3A至圖3C所示,是本發(fā)明程序?qū)嵤├木€程群組建構(gòu)實施例的示意圖、競爭資源爭取示意圖與程序編碼示意圖。 由圖3A與圖3B得知,此程序310包含至少一個線程群組330,而每一線程群組330包含至少一個線程、一群組調(diào)度單元321,并對應(yīng)一競爭資源320。線程是受群組調(diào)度單元321的管理,以決定何者可取得競爭資源320。 圖3C所示程序區(qū)段340是為程序310的主要程序編碼,在此例中,程序區(qū)段包含有副程序(Sub-Routine)341,并設(shè)置有一回呼程序342作為回呼機制(Call BackFunction)。線程調(diào)度單元321具有設(shè)定一資源讀取限制350的能力,資源讀取限制350用以保護副程序341所需競爭資源320使其限定由執(zhí)行副程序341的線程使用。同理,線程調(diào)度單元321具有解除資源讀取限制350的能力,其用以解除執(zhí)行副程序341所需的競爭資源320。 當(dāng)?shù)谝痪€程311執(zhí)行程序310區(qū)段至副程序341時,是請求線程調(diào)度單元321具有設(shè)定資源讀取限制350,以保護第一線程311所需的競爭資源320,并對群組調(diào)度單元321提出執(zhí)行許可請求(即競爭資源320的控制權(quán)),直到運算完成。 若程序310中間需提出回呼程序342,則第一線程311需先提出釋放競爭資源320控制權(quán)(即為提出資源讓與請求),再執(zhí)行回呼程序342。而第一線程311在進行回呼程序342時,同樣需提出執(zhí)行許可請求與資源讓與請求,以取得或釋放競爭資源320的控制權(quán),避免死結(jié)產(chǎn)生。然后再返回副程序341完成其運算,最后返回程序區(qū)段340,最后請求線程調(diào)度單元321解除資源讀取限制350,進而解除競爭資源320的保護。 當(dāng)?shù)谝痪€程311取得執(zhí)行許可,而且第二線程312加入同一線程群組330時,群組調(diào)度單元321停止第二線程312執(zhí)行并給予一權(quán)限值,最后加入第二線程312至一等待隊列(圖未示)中。 此外,第一線程311在副程序341與回呼程序342往返的執(zhí)行空檔中,群組調(diào)度單元321可能因第一線程311提出資源讓與請求,導(dǎo)致誤判第一線程311已完成,而將執(zhí)行許可給予等待中的第二線程312或新加入的第三線程313。 但通過資源讀取限制350保護第一線程311所需的競爭資源320,使得第二線程312或第三線程313無法取得第一線程311所需競爭資源320,同時讓群組調(diào)度單元321得知第一線程311尚未完成,迫使第二線程312或第三線程313停止執(zhí)行,返回等待隊列,以等待第一線程311完成所有運算。 之后,群組調(diào)度單元321記錄第一線程311所釋放的競爭資源320,并就第二線程312與第三線程313取出權(quán)限值最高者,將之喚醒并執(zhí)行。 當(dāng)?shù)诙€程312與第三線程313皆完成,而群組調(diào)度單元321未取得新的線程,等待隊列也不存在任一線程,群組調(diào)度單元321即結(jié)束自身的工作。 以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
一種程序的線程群組管理方法,是應(yīng)用于安裝有作業(yè)系統(tǒng)或至少一應(yīng)用程序的電子設(shè)備,其特征在于其包括以下步驟利用一群組調(diào)度單元取得可供一第一線程運作的一執(zhí)行許可并偵測該執(zhí)行許可是否給予其它線程,以決定是否賦予該執(zhí)行許可至該第一線程;偵測該線程群組是否有一第二線程執(zhí)行中,以決定是否停止該第一線程并等待該第二線程完成;允許該第一線程取得所需競爭資源以完成該第一線程的運算;以及取得該第一線程釋放的該競爭資源后判斷是否有一最高權(quán)限的第三線程存在,以喚醒該最高權(quán)限的該第三線程。
2. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的偵測該線 程群組是否有一第二線程執(zhí)行中步驟是包含下列步驟偵測該競爭資源是否被該第二線程占用,若偵測結(jié)果為是,則停止該第一線程并等待 該第二線程完成,若偵測結(jié)果為否,則允許該第一線程取得所需競爭資源以完成該第一線 程。
3. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的偵測該線 程群組是否有一第二線程執(zhí)行中步驟是包含下列步驟偵測是否有任一該競爭資源被限制給該第二線程使用,若偵測結(jié)果為是,停止該第一 線程并等待該第二線程完成,若偵測結(jié)果為否,則允許該第一線程取得所需競爭資源以完 成該第一線程。
4. 根據(jù)權(quán)利要求3所述的程序的線程群組管理方法,其特征在于其中所述的第一線程 取得所需競爭資源時,該群組調(diào)度單元是限定該競爭資源僅為該第一線程使用,直至該第 一線程完成。
5. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的決定是否 賦予該執(zhí)行許可至該第一線程步驟是包含下列步驟利用該群組調(diào)度單元接收該第一線程發(fā)出的該執(zhí)行許可的請求;判斷該執(zhí)行許可是否授予其它線程,若否,授予該執(zhí)行許可至該第一線程,若是,儲存 該第一線程至一等待隊列。
6. 根據(jù)權(quán)利要求5所述的程序的線程群組管理方法,其特征在于其中所述的儲存該第 一線程至一等待隊列步驟更包含下列步驟停止該第一線程的執(zhí)行; 給予該第一線程一權(quán)限值;以及 加入具有該權(quán)限值之該第一線程于該等待隊列。
7. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的取得該第 一線程釋放的該競爭資源步驟是包含下列步驟接收該第一線程的資源讓與請求; 記錄該第一線程釋放的該競爭資源;以及 開放該競爭資源的使用權(quán)。
8. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的判斷是否 有一最高權(quán)限的第三線程存在步驟是包含下列步驟若判斷有該最高權(quán)限的第三線程存在,取出該最高權(quán)限的第三線程并使該最高權(quán)限的 第三線程執(zhí)行。
9. 根據(jù)權(quán)利要求8所述的程序的線程群組管理方法,其特征在于其中所述的取出該最高權(quán)限的第三線程并使其執(zhí)行步驟還包含下列步驟偵測最高權(quán)限的該第三線程是否僅為一個,若否,依據(jù)一限定法則取出其一該第三線 程并使其執(zhí)行,若是,取出最高權(quán)限的該第三線程并使其執(zhí)行。
10. 根據(jù)權(quán)利要求9所述的程序的線程群組管理方法,其特征在于其中所述的限定法 則是先進先出調(diào)度法則、輪回式調(diào)度法則或最短行程優(yōu)先調(diào)度法則。
11. 根據(jù)權(quán)利要求1所述的程序的線程群組管理方法,其特征在于其中所述的每一該 線程群組是對應(yīng)至少一競爭資源。
全文摘要
本發(fā)明是有關(guān)于一種程序的線程群組管理方法,是應(yīng)用于安裝有作業(yè)系統(tǒng)或至少一應(yīng)用程序的電子設(shè)備,是先利用一群組調(diào)度單元取得可供一第一線程運作的一執(zhí)行許可,群組調(diào)度單元偵測線程群組有一第二線程執(zhí)行時停止第一線程的運作,在第二線程完成后才發(fā)出執(zhí)行許可,使第一線程取得所需競爭資源并執(zhí)行其運作。第一線程會于執(zhí)行完成時釋放取得的競爭資源,群組調(diào)度單元則呼叫等待隊列中最高權(quán)限的第三線程,并重復(fù)直至線程全數(shù)完成。藉此方法,避免一線程因執(zhí)行回呼機制,而讓其它線程趁機使用其所需資源,并防止線程被迫經(jīng)歷多個不同階段后才完成工作,進而取得正確的數(shù)據(jù)。
文檔編號G06F9/46GK101751293SQ200810186688
公開日2010年6月23日 申請日期2008年12月16日 優(yōu)先權(quán)日2008年12月16日
發(fā)明者王然益, 陳志和 申請人:智邦科技股份有限公司