国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種實現(xiàn)計算機多線程控制的方法及裝置的制作方法

      文檔序號:6419917閱讀:224來源:國知局
      專利名稱:一種實現(xiàn)計算機多線程控制的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機領(lǐng)域,具體涉及一種實現(xiàn)計算機多線程控制的方法及裝置。
      背景技術(shù)
      多線程支持是現(xiàn)代操作系統(tǒng)的基本特征之一,也是中間件必須提供的功能。所謂中間件是一種用于提供跨平臺編程的軟件,是在計算機硬件和操作系統(tǒng)之上,支持應(yīng)用軟件開發(fā)和運行的系統(tǒng)軟件,它能夠使應(yīng)用軟件相對獨立于計算機硬件和操作系統(tǒng)平臺,為當(dāng)今的大型分布式應(yīng)用搭起了一個標(biāo)準(zhǔn)的平臺。進程是資源管理的最小單位,線程是程序執(zhí)行的最小單位。在操作系統(tǒng)設(shè)計上,從進程演化出線程,最主要的目的就是更好地支持SMP(對稱多處理)以及減小(進程/線程)上下文切換開銷。針對這兩種不同的意義,分別開發(fā)出了核心級線程和用戶級線程兩種線程模型,其中核心級線程更利于并發(fā)使用多處理器的資源,而用戶級線程則更多考慮的是上下文切換開銷。目前線程主要的實現(xiàn)方法是用戶級線程。多線程是把一個進程分成很多可執(zhí)行線程,每一個線程都獨立運行。用多線程編程可以提高應(yīng)用程序響應(yīng),使多CPU系統(tǒng)更加有效,還可以改善程序結(jié)構(gòu),占用更少的系統(tǒng)資源,提高性能。用戶級多線程是通過線程庫來實現(xiàn)的。線程庫支持信號,為可運行的程序排隊,并負(fù)責(zé)同時操縱多任務(wù)。
      目前,業(yè)界中間件(例如Java虛擬機)中提供的線程庫通常是通過封裝操作系統(tǒng)本來提供的線程接口實現(xiàn)的,使用這種線程庫創(chuàng)建的線程實際上是操作系統(tǒng)的線程。其實現(xiàn)流程如圖1所示。
      這種線程功能還存在以下缺點(1)不同的操作平臺上表現(xiàn)出不同的線程特性,即同一程序在不同的操作平臺上的調(diào)度順序是不同的。例如,在A平臺上線程T1釋放執(zhí)行權(quán)后,線程T2被投入運行,而在B平臺上線程T1釋放執(zhí)行權(quán)后,可能就是T3被投入運行,如圖2所示。
      (2)不能在不支持線程的平臺上使用。
      (3)通常這種線程只能提供所有底層操作系統(tǒng)平臺的線程庫功能的并集,因此使得其功能受到一定的限制。
      (4)由于在原來的調(diào)用上進行封裝,所以需要兩套線程控制數(shù)據(jù)和處理,空間和時間效率會受影響。

      發(fā)明內(nèi)容
      本發(fā)明的目的是克服現(xiàn)有技術(shù)的上述缺點,提供一種實現(xiàn)計算機多線程控制的方法及裝置,更有效地利用系統(tǒng)資源,提高計算機性能。
      本發(fā)明提供了一種實現(xiàn)計算機多線程控制的方法,其特征在于,所述方法包括步驟建立一個通用線程庫;啟動所述計算機中的應(yīng)用程序時通過所述通用線程庫創(chuàng)建多個線程;由所述通用線程庫控制所述多個線程的運行。
      所述啟動所述計算機中的應(yīng)用程序時通過所述通用線程庫創(chuàng)建多個線程的步驟包括步驟通過所述計算機操作系統(tǒng)線程進入所述通用線程庫;通過所述通用線程庫的線程啟動所述應(yīng)用程序;所述應(yīng)用程序通過所述通用線程庫創(chuàng)建多個線程。
      所述方法還包括在多進程操作系統(tǒng)中,啟動所述計算機中的不同應(yīng)用程序時分別通過所述通用線程庫創(chuàng)建對應(yīng)于所述不同應(yīng)用程序的多個線程。
      所述由所述通用線程庫控制所述多個線程的運行的步驟包括所述應(yīng)用程序運行時由所述通用線程庫控制所述多個線程之間的切換。
      所述應(yīng)用程序運行時由所述通用線程庫控制所述多個線程之間的切換的步驟包括步驟由所述應(yīng)用程序或中斷處理例程通知所述通用線程庫掛起當(dāng)時運行的線程;所述通用線程庫根據(jù)所述多個線程的屬性和/或狀態(tài)選取下一個線程;所述通用線程庫調(diào)度所述下一個線程運行。
      所述多個線程的屬性包括所述多個線程的優(yōu)選級、線程號。
      所述多個線程的狀態(tài)包括掛起狀態(tài)和運行狀態(tài)。
      本發(fā)明還提供了一種實現(xiàn)上述方法的裝置,所述裝置包括線程創(chuàng)建裝置,耦合到所述計算機,用于在啟動所述計算機中的應(yīng)用程序時創(chuàng)建所述應(yīng)用程序的多個線程;線程控制子裝置,耦合到所述計算機,用于在運行所述計算機中的應(yīng)用程序時控制所述線程創(chuàng)建裝置創(chuàng)建的應(yīng)用程序的多個線程;線程運行裝置,用于根據(jù)所述控制子裝置的指令運行所述應(yīng)用程序的多個線程。
      優(yōu)選地,所述線程控制子裝置包括線程選取裝置,用于接收所述線程控制子裝置的指令,根據(jù)多個線程的屬性和/或狀態(tài)選取需要運行的線程;
      線程調(diào)度裝置,用于根據(jù)所述線程控制子裝置的指令調(diào)度當(dāng)前線程的運行狀態(tài)。
      優(yōu)選地,所述線程調(diào)度裝置還包括線程掛起裝置,用于根據(jù)所述線程調(diào)度裝置的指令暫停當(dāng)前線程的運行;線程恢復(fù)執(zhí)行裝置,用于根據(jù)所述線程調(diào)度裝置的指令恢復(fù)所述暫停的線程的運行。
      利用本發(fā)明,可以使計算機系統(tǒng)實現(xiàn)完全自主管理的多線程支持,不但在不同的操作系統(tǒng)平臺上提供相同的線程特性,而且在單CPU的操作系統(tǒng)上也可以支持多線程的運行,提高了系統(tǒng)資源的利用率,增強了系統(tǒng)性能。


      圖1是現(xiàn)有技術(shù)中中間件線程庫實現(xiàn)流程圖;圖2是現(xiàn)有技術(shù)中中間件線程庫在不同操作平臺上的線程特性示意圖;圖3是本發(fā)明的優(yōu)選實施例實現(xiàn)計算機多線程控制的方法的原理示意圖;圖4是本發(fā)明方法在多線程操作系統(tǒng)中的原理示意圖;圖5是本發(fā)明方法在單線程操作系統(tǒng)中的原理示意圖;圖6是本發(fā)明的優(yōu)選實施例實現(xiàn)計算機多線程控制的方法的步驟的流程圖;圖7是圖6所示的本發(fā)明方法的步驟流程中由通用線程庫控制多個線程的運行的詳細(xì)步驟流程圖;圖8是本發(fā)明實現(xiàn)計算機多線程控制的裝置的方框圖。
      具體實施例方式
      為了使本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,現(xiàn)結(jié)合附圖詳細(xì)描繪實施例,通過這些實施例,本領(lǐng)域技術(shù)人員可以更容易地理解本發(fā)明的目的和技術(shù)方案及本發(fā)明的效果。
      計算機中程序的運行都需要操作系統(tǒng)為該程序分配一個進程,而每一個進程至少需要一個線程作為它的指令執(zhí)行體,進程管理著資源(比如CPU、內(nèi)存、文件等等),而將線程分配到某個CPU上執(zhí)行。一個進程可以擁有多個線程,此時,如果進程運行在SMP機器上,它就可以同時使用多個CPU來執(zhí)行各個線程,達到最大程度的并行,以提高效率;同時,即使是在單CPU的機器上,采用多線程模型來設(shè)計程序,可以使設(shè)計更簡潔、功能更完備,程序的執(zhí)行效率也更高,例如采用多個線程響應(yīng)多個輸入,而此時多線程模型所實現(xiàn)的功能實際上也可以用多進程模型來實現(xiàn),而與后者相比,線程的上下文切換開銷就比進程要小多了,同時響應(yīng)多個輸入這樣的功能,實際上就是共享了除CPU以外的所有資源。
      無論在什么操作系統(tǒng)上編寫程序,該操作系統(tǒng)至少要提供一個執(zhí)行入口,如果操作系統(tǒng)是單線程的,從這個入口開始執(zhí)行的程序從此占用CPU的全部時間;如果操作系統(tǒng)是多線程的,則從這個入口開始執(zhí)行的程序占用其中一個線程的時間。把運行本線程庫的程序所占用的操作系統(tǒng)線程作為母體線程,則本線程庫中每一個線程都占用這個母體線程庫的時間。這樣,在操作系統(tǒng)看來,該程序只占用了一個線程的時間,而在使用該線程庫的裝置看來,則有多個線程在運行。
      參見圖3,圖3示出了本發(fā)明的優(yōu)選實施例實現(xiàn)計算機多線程控制的方法的原理示意圖。其中,雙線表示該調(diào)用可能調(diào)度多次,虛線表示調(diào)用是可選的;中斷處理例程通知線程庫超時的機制是可選的,一般用于特殊的環(huán)境例如應(yīng)用程序需要分時的特性。
      當(dāng)啟動計算機中的應(yīng)用程序運行時,首先通過計算機的操作系統(tǒng)的線程入口進入本線程庫,再由本線程庫的線程入口進入所述應(yīng)用程序,該應(yīng)用程序根據(jù)需要通過本線程庫創(chuàng)建多個線程,然后根據(jù)應(yīng)用程序的需要由本線程庫獨立執(zhí)行這些線程的掛起和調(diào)度,控制多個線程的運行,不再占用操作系統(tǒng)的其它線程,也就是說,只需計算機的單個線程即可實現(xiàn)程序的多線程運行。這樣,不論該程序移植到何種操作系統(tǒng)中,其線程特性都不會改變。
      圖4和圖5分別示出了本發(fā)明方法在多線程操作系統(tǒng)和單線程操作系統(tǒng)中的原理示意圖。
      參照圖4,操作系統(tǒng)包括三個線程T1、T2、T3,T2為前面所述的本線程庫的母體線程,在此母體線程中還包含所述應(yīng)用程序的多個線程,這些所述多個線程的切換及運行只在母體線程T2內(nèi),而與另外兩個線程T1和T3無關(guān)。使應(yīng)用程序的運行占用更少的系統(tǒng)資源。
      再參照圖5,在單線程的操作系統(tǒng)中,同樣也可以實現(xiàn)應(yīng)用程序的多線程運行,同時不會影響對多個線程的控制,使得在單進程的操作系統(tǒng)中,更好地提高應(yīng)用程序的響應(yīng)。
      本發(fā)明就是在基于上述原理的基礎(chǔ)上,提供了實現(xiàn)計算機多線程控制的方法及裝置。下面將參照圖6對此作詳細(xì)說明。
      參照圖6,圖6示出了本發(fā)明的優(yōu)選實施例實現(xiàn)計算機多線程控制的方法的步驟的流程首先,在步驟61建立一個通用線程庫;然后,進到步驟62,通過計算機操作系統(tǒng)線程進入通用線程庫;進到步驟63,通過通用線程庫的線程啟動計算機中的應(yīng)用程序;進到步驟64,所述應(yīng)用程序通過上述通用線程庫創(chuàng)建多個線程;
      然后,進到步驟65,在該應(yīng)用程序運行過程中由所述通用線程庫控制上述創(chuàng)建的多個線程的運行,直至該應(yīng)用程序運行結(jié)束,退出該應(yīng)用程序。
      在本發(fā)明實現(xiàn)計算機多線程控制的方法中,多個線程的創(chuàng)建及控制都是基于一個通用線程庫,在應(yīng)用程序運行過程中由該通用線程庫控制多個線程的運行,即上述步驟65,下面參照圖7對其流程作一詳細(xì)說明。
      參照圖7,圖7是圖6所示的本發(fā)明方法的步驟流程中由通用線程庫控制多個線程的運行的詳細(xì)步驟流程圖;首先在步驟71,啟動第一個線程;然后,進到步驟72,根據(jù)程序需要由應(yīng)用程序通知通用線程庫掛起當(dāng)前線程或者由中斷處理例程通知通用線程庫掛起當(dāng)前線程,比如,線程運行超時或者線程等待超時等;進到步驟73,通用線程庫根據(jù)多個線程的屬性和/或狀態(tài)選取下一個線程,其中,多個線程的屬性包括多個線程的優(yōu)選級、線程號等,多個線程的狀態(tài)包括掛起狀態(tài)和運行狀態(tài);然后,進到步驟74,通用線程庫調(diào)度所述選取的下一個線程運行;進到步驟75,判斷該應(yīng)用程序的所有線程是否運行結(jié)束;如果所有線程都已運行結(jié)束,則進到步驟76,結(jié)束該程序的運行,退出;否則,返回步驟72,根據(jù)程序需要由應(yīng)用程序通知通用線程庫掛起當(dāng)前線程或者由中斷處理例程通知通用線程庫掛起當(dāng)前線程。
      本發(fā)明還提供了一種實現(xiàn)上述方法的裝置,下面參照圖8對此裝置作進一步的說明。
      參照圖8,圖8是本發(fā)明實現(xiàn)計算機多線程控制的裝置的方框圖。本裝置由三部分組成線程創(chuàng)建裝置81、線程控制子裝置80和線程運行裝置82。其中,線程創(chuàng)建裝置81耦合到計算機83,用于在啟動計算機83中的應(yīng)用程序時創(chuàng)建該應(yīng)用程序的多個線程;線程控制子裝置80耦合到計算機83,用于在運行計算機83中的應(yīng)用程序時控制線程創(chuàng)建裝置81創(chuàng)建的應(yīng)用程序的多個線程;線程運行裝置82,用于根據(jù)控制子裝置80的指令運行應(yīng)用程序的多個線程。
      上述線程控制子裝置80由線程選取裝置801和線程調(diào)度裝置802組成。其中,線程選取裝置801用于接收線程控制子裝置80的指令,根據(jù)多個線程的屬性和/或狀態(tài)選取需要運行的線程;線程調(diào)度裝置802用于根據(jù)線程控制子裝置80的指令調(diào)度當(dāng)前線程的運行狀態(tài)。
      上述線程調(diào)度裝置802還包括線程掛起裝置803,用于根據(jù)線程調(diào)度裝置802的指令暫停當(dāng)前線程的運行;線程恢復(fù)執(zhí)行裝置804,用于根據(jù)線程調(diào)度裝置802的指令恢復(fù)所述暫停的線程的運行。
      本發(fā)明裝置的工作過程如下啟動計算機83的應(yīng)用程序;通過計算機83的操作系統(tǒng)的線程通知線程創(chuàng)建裝置81創(chuàng)建該應(yīng)用程序的多個線程;由計算機83通知線程控制子裝置80控制上述多個線程的運行;線程控制子裝置80收到通知后控制線程選取裝置801選取第一個線程,并將所述選取的第一個線程交由線程運行裝置82運行;當(dāng)所述第一個線程運行完畢或者第一個線程運行超時后,由線程控制子裝置80通知線程調(diào)度裝置802掛起該線程;線程調(diào)度裝置802收到通知后控制線程掛起裝置803掛起該線程;
      由線程控制子裝置80控制線程選取裝置801選取下一個線程,并將所述選取的下一個線程交由線程運行裝置82運行;當(dāng)有被掛起的線程需要重新運行時,由線程控制子裝置80通知線程調(diào)度裝置802;線程調(diào)度裝置802收到通知后控制線程恢復(fù)執(zhí)行裝置804恢復(fù)該線程的運行;重復(fù)上述過程,直到所有線程運行結(jié)束,退出該程序,釋放該程序所占用的計算機操作系統(tǒng)的線程。
      雖然通過實施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,例如,稍加變化,也可以通過多個線程實現(xiàn)相同的功能,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
      權(quán)利要求
      1.一種實現(xiàn)計算機多線程控制的方法,其特征在于,所述方法包括步驟建立一個通用線程庫;啟動所述計算機中的應(yīng)用程序時通過所述通用線程庫創(chuàng)建多個線程;由所述通用線程庫控制所述多個線程的運行。
      2.如權(quán)利要求1所述的方法,其特征在于,所述啟動所述計算機中的應(yīng)用程序時通過所述通用線程庫創(chuàng)建多個線程的步驟包括通過所述計算機操作系統(tǒng)線程進入所述通用線程庫;通過所述通用線程庫的線程啟動所述應(yīng)用程序;所述應(yīng)用程序通過所述通用線程庫創(chuàng)建多個線程。
      3.如權(quán)利要求1所述的方法,其特征在于,還包括在多進程操作系統(tǒng)中,啟動所述計算機中的不同應(yīng)用程序時分別通過所述通用線程庫創(chuàng)建對應(yīng)于所述不同應(yīng)用程序的多個線程。
      4.如權(quán)利要求1所述的方法,其特征在于,所述由所述通用線程庫控制所述多個線程的運行的步驟包括所述應(yīng)用程序運行時由所述通用線程庫控制所述多個線程之間的切換。
      5.如權(quán)利要求4所述的方法,其特征在于,所述應(yīng)用程序運行時由所述通用線程庫控制所述多個線程之間的切換的步驟包括由所述應(yīng)用程序或中斷處理例程通知所述通用線程庫掛起當(dāng)時運行的線程;所述通用線程庫根據(jù)所述多個線程的屬性和/或狀態(tài)選取下一個線程;所述通用線程庫調(diào)度所述下一個線程運行。
      6.如權(quán)利要求5所述的方法,其特征在于,所述多個線程的屬性包括所述多個線程的優(yōu)選級、線程號。
      7.如權(quán)利要求5所述的方法,其特征在于,所述多個線程的狀態(tài)包括掛起狀態(tài)和運行狀態(tài)。
      8.一種實現(xiàn)計算機多線程控制的裝置,其特征在于,所述裝置包括線程創(chuàng)建裝置,耦合到所述計算機,用于在啟動所述計算機中的應(yīng)用程序時創(chuàng)建所述應(yīng)用程序的多個線程;線程控制子裝置,耦合到所述計算機,用于在運行所述計算機中的應(yīng)用程序時控制所述線程創(chuàng)建裝置創(chuàng)建的應(yīng)用程序的多個線程;線程運行裝置,用于根據(jù)所述控制子裝置的指令運行所述應(yīng)用程序的多個線程。
      9.如權(quán)利要求8所述的裝置,其特征在于,所述線程控制子裝置包括線程選取裝置,用于接收所述線程控制子裝置的指令,根據(jù)多個線程的屬性和/或狀態(tài)選取需要運行的線程;線程調(diào)度裝置,用于根據(jù)所述線程控制子裝置的指令調(diào)度當(dāng)前線程的運行狀態(tài)。
      10.如權(quán)利要求9所述的裝置,其特征在于,所述線程調(diào)度裝置還包括線程掛起裝置,用于根據(jù)所述線程調(diào)度裝置的指令暫停當(dāng)前線程的運行;線程恢復(fù)執(zhí)行裝置,用于根據(jù)所述線程調(diào)度裝置的指令恢復(fù)所述暫停的線程的運行。
      全文摘要
      本發(fā)明公開了一種實現(xiàn)計算機多線程控制的方法及裝置。本發(fā)明方法包括步驟建立一個通用線程庫;啟動計算機中的應(yīng)用程序時通過通用線程庫創(chuàng)建多個線程;由通用線程庫控制所述多個線程的運行。本發(fā)明裝置包括線程創(chuàng)建裝置,用于在啟動計算機中的應(yīng)用程序時創(chuàng)建應(yīng)用程序的多個線程;線程控制子裝置,用于控制線程創(chuàng)建裝置創(chuàng)建的應(yīng)用程序的多個線程;線程運行裝置,用于根據(jù)線程控制子裝置的指令運行多個線程。利用本發(fā)明,可以使計算機系統(tǒng)實現(xiàn)完全自主管理的多線程支持,不但在不同的操作系統(tǒng)平臺上提供相同的線程特性,而且在單CPU的操作系統(tǒng)上也可以支持多線程的運行,提高了系統(tǒng)資源的利用率,增強了系統(tǒng)性能。
      文檔編號G06F9/40GK1605984SQ20031010190
      公開日2005年4月13日 申請日期2003年10月10日 優(yōu)先權(quán)日2003年10月10日
      發(fā)明者李國柱 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1