專利名稱:動態(tài)線程池管理的制作方法
技術領域:
本發(fā)明涉及線程管理領域,尤其涉及對線程的動態(tài)管理。
背景技術:
服務器被設計成響應于來自客戶機的請求來提供服務。使服務器能夠并發(fā)地處理 若干請求的常見方法是使用包括用于執(zhí)行任務所創(chuàng)建的一些線程的線程池。線程池中的線 程數(shù)量是資源,并且通常,存在許多比線程多得多的任務。如果線程池中的線程數(shù)量太少, 則存在較少的并發(fā)性,可能降低總體請求處理吞吐量。另一方面,如果線程池中的線程數(shù)量 太大,則線程之間的上下文改變浪費更多時間,并且存在較大機會的鎖競爭(例如,具有對 相同資源的獨占訪問的線程)。進一步的結果是服務器吞吐量的減少。當應用程序利用單個線程池來服務若干相關聯(lián)的子應用程序時,當僅僅幾個子應 用程序?qū)е绿幚硌舆t時,所有的子應用程序可經(jīng)歷該延遲。此外,當與子應用程序相關聯(lián)的 線程試圖與經(jīng)歷延遲的子應用程序交互時,這些線程可被阻止,直到解決了延遲的子應用 程序。應用程序性能的下降導致用戶體驗降級。
發(fā)明內(nèi)容
本發(fā)明的各實施例動態(tài)地管理與多個子應用程序相關聯(lián)的線程池。應用程序和多 個子應用程序的配置信息連同對多個子應用程序中的至少一個的請求一起被接收。確定當 前被分配給子應用程序中的至少一個的線程數(shù)量,并且將其與來自配置信息的子應用程序 的預定義的最大閾值作比較。如果線程數(shù)量不大于預定義的最大線程閾值,則分配線程池 中的線程來處理請求。然而,如果線程數(shù)量大于預定義的最大線程閾值,則生成出錯消息。提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確 定所要求保護的主題的范圍。
圖1是示出接收和處理來自客戶機的請求的服務器的示例性框圖。圖2是具有存儲用于動態(tài)地管理線程池的組件的存儲器區(qū)域的服務器的示例性框圖。圖3A和圖3B是示出用于動態(tài)地管理線程池的過程的示例性流程圖。在附圖范圍中,對應的參考符號表示對應的部分。
具體實施例方式參考附圖,本發(fā)明的各實施例提供用于經(jīng)由服務器106動態(tài)地管理服務應用程序 108和多個子應用程序110的線程池208的系統(tǒng)100。在某些實施例中,常見語言運行時線 程池服務具有多個相關聯(lián)的應用程序的網(wǎng)站。本發(fā)明的各實施例向服務器106提供動態(tài)地改變線程池208中的線程數(shù)量、以及基于當前分配給子應用程序110的每一個的線程數(shù)量 來動態(tài)地維護該分配給子應用程序110中的每一個的線程數(shù)量的能力。本發(fā)明的另一些實施例基于一個或多個子應用程序110所經(jīng)歷的等待時間來動 態(tài)地控制線程池208中的線程數(shù)量(例如,線程池208中的線程數(shù)量與等待時間成反比)。 這隔離了潛在子應用程序可對其他子應用程序的影響。更具體地,如果子應用程序變成潛 在的,則直到潛在子應用程序的響應時間小于預定義的閾值,可分配給潛在子應用程序的 線程數(shù)量減小到例如一個。隨后綁定到潛在子應用程序的請求失敗,這還引起出錯信息被 發(fā)送回客戶機102。這一失敗機制防止線程被分配以服務潛在子應用程序以便包含等待時 間、并且使得更多線程可用于對綁定到非潛在的其他子應用程序的請求進行服務。等待時 間可與諸如處理等待時間、網(wǎng)絡等待時間或其他等待時間等子應用程序的任何組件或操作 相關聯(lián)。再次參考圖1,系統(tǒng)100的示例性框圖包括客戶機102、網(wǎng)絡104和服務器106???戶機表示諸如移動計算設備、膝上型計算機、上網(wǎng)本計算機、游戲控制臺等之類的任何計算 設備。服務器106被配置成經(jīng)由網(wǎng)絡104與客戶機102進行通信。服務器106包括或可以 訪問應用程序108和子應用程序110。盡管參考作為服務器計算設備的服務器106示出并且描述了本發(fā)明的一些實施 方式,但本發(fā)明的各方面可用于執(zhí)行本文示出并且描述的功能的任何設備或其等價物,諸 如在對等系統(tǒng)中。例如,本發(fā)明的實施例可用于上網(wǎng)本、臺式計算設備、膝上型計算機、以及 其他計算設備。在這些實施例中,數(shù)據(jù)可由云服務來存儲并可由實現(xiàn)本發(fā)明的功能的任何 計算設備來訪問。接著參考圖2,服務器106具有用于存儲動態(tài)地管理線程池208的組件的存儲器區(qū) 域202。服務器106還包括顯示器204和至少一個處理器206。顯示器204可以是例如電 容式觸摸屏顯示器,該電容式觸摸屏顯示器被集成到服務器106中、或外置于服務器106。 在充當用戶輸入選擇設備的顯示器204中提供用戶輸入功能。顯示器204被配置為響應于 顯示器204上的用戶按壓接觸以選擇性地執(zhí)行功能。由此,用戶可以例如通過接觸顯示器 204的表面以及此處提供的其他功能來輸入最大閾值。存儲器區(qū)域202存儲線程池208以及一個或多個計算機可執(zhí)行組件。示例性組件 包括但不限于接口組件210、線程池組件212、等待時間組件214、以及閾值組件216。雖然 線程池208和組件210、212、214、216被示為存儲在存儲器區(qū)域202,但線程池208和組件 210、212、214、216可被存儲在遠離服務器106的存儲器區(qū)域并且從其中執(zhí)行。例如,線程 池208可被存儲在云服務、數(shù)據(jù)庫或可由服務器106訪問的其他存儲器區(qū)域中。這些實施 例減輕了服務器106上的計算和存儲負擔。處理器206執(zhí)行用于實現(xiàn)本發(fā)明的各方面的計算機可執(zhí)行指令。在某些實施方 式中,處理器206通過執(zhí)行計算機可執(zhí)行指令或通過以其他方式編程來變換成專用微處理 器。例如,存儲器206可執(zhí)行接口組件210、線程池組件212、等待時間組件214、以及閾值 組件216。接口組件210當被理器206執(zhí)行時使得處理器206接收應用程序108和子應用 程序110的配置信息,并且接收來自客戶機102的對子應用程序110中的至少一個的請求。 配置信息包括,例如,預定義的最大線程閾值,并且可任選地包括對子應用程序中的每一個 的預定義的最大等待時間閾值。配置信息可由與應用程序108相關聯(lián)的開發(fā)者、用戶、或另一實體來設置。線程池組件212當被理器206執(zhí)行時使得處理器206確定當前分配給子應用程 序中的至少一個的線程數(shù)量,確定當前分配給子應用程序中的至少一個的線程數(shù)量是否大 于預定義的最大線程閾值,并且如果當前分配給子應用程序中的至少一個的線程數(shù)量不大 于預定義的最大線程閾值、則分配一線程來處理所接收的請求。等待時間組件214當被處 理器206執(zhí)行時使得處理器206確定子應用程序110中的至少一個的等待時間。接口組件 210當被處理器206執(zhí)行時還使得處理器206在所確定的等待時間大于預定義的等待時間 閾值時向客戶機102發(fā)送出錯消息。例如,出錯信息可包括“XXX秒后重試”建議。閾值組 件216當被處理器206執(zhí)行時使得處理器206在所確定的等待時間大于預定義的最大等待 時間閾值時將預定義的最大線程閾值減小到例如一,此外,閾值組件216當被處理器206執(zhí) 行時使得處理器206在所確定的等待時間不大于預定義的最大等待時間閾值且當前預定 義的最大線程閾值為1時增加預定義的最大線程閾值。一般而言,處理器206可以用指令來編程,諸如此處參考圖2中示出的組件以及圖 3A和圖;3B中示出且接著描述的操作來描述的指令。接著參考圖3A和圖;3B,示例性流程圖示出了用于動態(tài)地管理與應用程序108和子 應用程序110相關聯(lián)的單個線程池(例如,線程池208)的過程。應用程序108啟動之后,在 302,接收應用程序108和子應用程序110的配置信息。在一個替換實施例中,應用程序108 和子應用程序110的配置信息被存儲在存儲器區(qū)域202中,并且在啟動應用程序108之后, 可將所存儲的配置信息與所接收的配置信息作比較,并且如果需要則基于比較來更新所存 儲的配置信息。在一個實施例中,配置信息包括與子應用程序110中的一個或多個相關聯(lián) 的預定義的最大線程閾值。子應用程序110中的每一個之間的預定義的最大線程閾值可以 不同。例如,預定義的最大線程閾值可以基于子應用程序中的每一個接收的“通信”量,并 且大小可由此隨一個子應用程序到另一個而變化。由此,具有較低等級的通信量的子應用 程序在與子應用程序110中的其他子應用程序作比較時,它具有的預定義最大線程閾值可 以比子應用程序110中的其他子應用程序低,反之亦然。在又一個實施例中,配置信息還可 包括與子應用程序110中的一個或多個相關聯(lián)的預定義的最大等待時間閾值。在304,從客戶機102接收對子應用程序110中的至少一個(例如,目標子應用程序)的請求。在接收請求之后,在306確定當前分配給目標子應用程序的線程數(shù)量。在308, 所確定的線程數(shù)量和與目標子應用程序相關聯(lián)的預定義的最大線程閾值作比較。與目標子 應用程序相關聯(lián)的預定義的最大閾值被存儲在所接收/存儲的配置信息中。在310,確定所 確定的分配給目標子應用程序的線程數(shù)量是否大于預定義的最大線程閾值。在312,如果所 確定的分配給目標子應用程序的線程數(shù)量大于與目標子應用程序相關聯(lián)的預定義的最大 線程閾值,則生成出錯信息并且將其發(fā)送給客戶機102。在314,如果所確定的分配給目標子應用程序的線程數(shù)量不大于預定義的最大線 程閾值,則確定目標子應用程序的等待時間。在一個實施例中,通過在預定義的時間段(例 如,一分鐘、五分鐘、十分鐘)內(nèi)計算目標子應用程序處理請求的平均響應時間來確定等待 時間。在又一實施例中,可以直到目標子應用程序處理預定義數(shù)量的請求,才確定等待時 間。例如,直到目標子應用程序處理十個請求、五十個請求或甚至幾百個請求,才確定等待 時間。由此,在此示例中,一旦目標子應用程序處理預定義數(shù)量的請求,則確定用于處理預定義數(shù)量的請求中的每一個的平均響應時間。在一個實施例中,預定義數(shù)量的請求可被存 儲在所接收/存儲的配置信息中。在316,將目標子應用程序的等待時間和與目標子應用程序相關聯(lián)的預定義的最 大等待時間閾值作比較。在318,確定該至少子應用程序的所確定的等待時間是否大于與目 標子應用程序相關聯(lián)的預定義的最大等待時間閾值。在320,如果該至少子應用程序的所確 定的等待時間大于與目標子應用程序相關聯(lián)的預定義的最大等待時間閾值,則生成出錯信 息并且將其發(fā)送給客戶機102。在322,如果該至少子應用程序的所確定的等待時間大于與 目標子應用程序相關聯(lián)的預定義的最大等待時間閾值,則將預定義的最大線程閾值減小到 大于零但接近于一的值。將最大線程閾值減小到非零值以動態(tài)地檢測潛在子應用程序何時 不再是潛在的。將最大線程閾值設置得過高防止了線程阻塞。在一個實施例中,如果該至 少子應用程序的所確定的等待時間大于與目標子應用程序相關聯(lián)的預定義的最大等待時 間閾值,則將預定義的最大線程閾值減小到一。動態(tài)地控制可分配給目標子應用程序的線 程數(shù)量(例如,減小可分配給一個線程的線程數(shù)量)隔離了目標子應用程序可能對子應用 程序110中的其他子應用程序的每一個的影響。因此,從例如客戶機102接收的且被綁定 到目標子應用程序的任何請求都失敗了。允許所接收的每一信號失敗防止了線程被分配給 目標子應用程序,并且使得更多線程可用于對綁定到子應用程序110中的所有其他子應用 程序的請求進行服務。在減小與目標子應用程序相關聯(lián)的預定義的最大閾值之后,直到經(jīng)過預定義的時 間段或目標子應用程序處理了預定義數(shù)量的請求,才確定該至少一個子應用程序的等待時 間。在一個實施例中,當目標子應用程序被確定為潛在的時,減小預定義的時間段或所處理 的請求的預定義數(shù)量。由此,在此示例中,當目標子應用程序被確定為潛在的時,預定義的 時間段或處理請求的預定義數(shù)量比當目標子應用程序被確定為非潛在的時低。一旦已經(jīng)過 預定義的時間段或已經(jīng)處理了預定義數(shù)量的請求,則確定在預定義的時間段用于處理請求 的平均響應時間,或確定用于處理預定義數(shù)量的請求中的每一個的平均響應時間。確定用 于處理請求的平均響應時間不大于與目標子應用程序相關聯(lián)的預定義的最大等待時間閾 值之后,將所減小的預定義的最大線程閾值增加到例如所減小的預定義的最大線程閾值之 前的目標子應用程序的預定義的最大線程閾值。在324,如果所確定的分配給目標子應用程序的線程數(shù)量不大于與至少一個子應 用程序相關聯(lián)的預定義的最大線程閾值,并且如果所確定的目標子應用程序的等待時間不 大于與至少一個子應用程序相關聯(lián)的預定義的最大等待時間閾值,則分配來自線程池208 的線程以處理所接收的請求。在326,在分配線程以處理所接收的請求之后,將分配給目標 子應用程序的線程數(shù)量加一。在328,處理所接收的請求,并且在330,將滿足所接收的請求 的響應發(fā)送給客戶機102。在322,在將滿足所接收的請求的響應發(fā)送給客戶機之后,將分 配給目標子應用程序的線程數(shù)量減一。雖然本發(fā)明的某些實施例構想了服務器106執(zhí)行在圖3A和圖中示出的操作, 但在某些實施例中客戶機102可執(zhí)行一個或多個操作。示例性操作環(huán)境諸如服務器106和客戶機102等此處所描述的計算機或計算設備具有一個或多個 處理器或處理單元、系統(tǒng)存儲器和某種形式的計算機可讀介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可 讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)的信息的任何方法或技術實現(xiàn)的易失性與非易失 性、可移動與不可移動介質(zhì)。通信介質(zhì)一般以諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號 來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。以 上的任一種的組合也包括在計算機可讀介質(zhì)的范圍之內(nèi)。計算機可使用至一個或多個遠程計算機,如遠程計算機的邏輯連接在網(wǎng)絡化環(huán)境 中操作。盡管結合示例性計算系統(tǒng)環(huán)境進行了描述,但本發(fā)明的各實施例可用于眾多其它 通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置。計算系統(tǒng)環(huán)境不旨在對本發(fā)明的任何方面的使用范圍 或功能提出任何限制。此外,計算機環(huán)境也不應被解釋成對于示例性操作環(huán)境中所示出的 任一組件或其組合有任何依賴或要求。適用于本發(fā)明各方面的公知的計算系統(tǒng)、環(huán)境和/ 或配置的示例包括,但不限于個人計算機、服務器計算機、手持式或膝上型設備、多處理器 系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、移動電話、網(wǎng)絡PC、小型機、大型 機、包括上述系統(tǒng)或設備中的任一個的分布式計算機環(huán)境等??梢栽谟梢慌_或多臺計算機或其他設備執(zhí)行的諸如程序模塊之類的計算機可執(zhí) 行的指令的一般上下文中來描述本發(fā)明的各實施例。計算機可執(zhí)行指令可以被組織成一個 或多個計算機可執(zhí)行組件或模塊。一般而言,程序模塊包括,但不限于,執(zhí)行特定任務或?qū)?現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件,以及數(shù)據(jù)結構??梢岳萌魏螖?shù)量的這樣的 組件或模塊及其組織來實現(xiàn)本發(fā)明的各方面。例如,本發(fā)明的各方面不僅限于附圖中所示 出并且在此處所描述的特定計算機可執(zhí)行指令或特定組件或模塊。本發(fā)明的其他實施例可 以包括具有比此處所示出和描述的功能更多或更少功能的不同的計算機可執(zhí)行指令或組 件。本發(fā)明的各方面也可以在其中任務由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的分布式 計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備在內(nèi)的本 地和遠程計算機存儲介質(zhì)中。本發(fā)明的各方面當被配置成執(zhí)行此處所描述的指令時將通用計算機變換成專用 計算設備。本文所示出且描述的實施例以及本文未具體地描述但在本發(fā)明的各方面的范圍 內(nèi)的實施例構成了用于基于線程計數(shù)和等待時間來動態(tài)地維護一個線程池中的多個子應 用程序的多個線程的示例性裝置,以及用于動態(tài)地維護分配給多個子應用程序中的每一個 的線程數(shù)量的示例性裝置。此處所示出和描述的本發(fā)明的各實施例中的操作的執(zhí)行或?qū)崿F(xiàn)的順序不是必需 的,除非另外指定。即,除非另外指定,否則操作可以按任何順序執(zhí)行,且本發(fā)明的各實施例 可以包括比此處所公開的操作更多或更少的操作。例如,構想了在一個操作之前、同時或之 后執(zhí)行另一個操作是在本發(fā)明的各方面的范圍之內(nèi)的。當介紹本發(fā)明的各方面的元素或其實施例時,冠詞“一”、“一個”、“該”、“所述”旨
在表示有元素中的一個或多個。術語“包括”、“包含”以及“具有”旨在是包含性的,并意味 著除所列出的元素以外還可以有額外的元素。已經(jīng)詳細地描述了本發(fā)明的各方面,顯然,在不偏離所附權利要求書所定義的本 發(fā)明的各方面的范圍的情況下,可以進行各種修改和變化。在不偏離本發(fā)明的各方面的范 圍的情況下,可以對上面的構造、產(chǎn)品以及方法作出各種更改,上面的描述中所包含的和各個附圖中所示出的所有主題應該解釋為說明性的,而不是限制性的。
權利要求
1.一種用于動態(tài)地管理與多個子應用程序(Iio)相關聯(lián)的線程池O08)的系統(tǒng),所述 系統(tǒng)包括用于存儲應用程序(108)以及與其相關聯(lián)的多個子應用程序(110)的配置信息的存儲 器區(qū)域002),所述配置信息包括與所述多個子應用程序(110)的一個或多個相關聯(lián)的預 定義的最大線程閾值,所述配置信息還包括與所述多個子應用程序(110)的一個或多個相 關聯(lián)的預定義的最大等待時間閾值,所述多個子應用程序(110)與一個線程池(208)相關 聯(lián);以及處理器006),所述處理器被編程為接收所述應用程序(108)和所述多個子應用程序(110)的配置信息; 接收對所述子應用程序(110)中的至少一個的請求; 確定當前分配給所述子應用程序(110)中的至少一個的線程數(shù)量; 將所確定的線程數(shù)量與存儲在所述存儲器區(qū)域O02)中的預定義的最大線程閾值作 比較以生成第一比較結果;確定所述子應用程序(110)中的至少一個的等待時間;將所確定的等待時間與存儲在所述存儲器區(qū)域O02)中的所述預定義的最大等待時 間閾值作比較以生成第二比較結果;基于所述第一比較結果和所述第二比較結果來分配所述一個線程池O08)中的線程 以處理所接收的請求。
2.如權利要求1所述的系統(tǒng),其特征在于,所述處理器被編程為接收來自客戶機的請 求,并且所述處理器還被編程為如果所確定的線程數(shù)量大于所述預定義的最大線程閾值, 則將出錯消息發(fā)送給所述客戶機。
3.如權利要求1所述的系統(tǒng),其特征在于,所述處理器還被編程為在預定義的時間段 內(nèi)計算所述子應用程序中的至少一個的平均響應時間以處理請求。
4.如權利要求1所述的系統(tǒng),其特征在于,還包括用于基于線程計數(shù)和等待時間來動 態(tài)地維護所述一個線程池中多個子應用程序的多個線程的裝置。
5.如權利要求1所述的系統(tǒng),其特征在于,還包括動態(tài)地維護分配給所述多個子應用 程序中的每一個的線程數(shù)量的裝置。
6.一種方法,包括接收應用程序(108)以及多個子應用程序(110)的配置信息,所述子應用程序(110) 與一個線程池(208)相關聯(lián);接收對所述子應用程序(110)中的至少一個的請求; 確定當前分配給所述子應用程序(110)中的至少一個的線程數(shù)量; 將所確定的線數(shù)量與來自所接收的配置信息的預定義的最大線程閾值作比較; 如果所確定的線程數(shù)據(jù)不大于所述預定義的最大線程閾值,則分配所述一個線程池 (208)中的線程以處理所接收的請求;以及如果所確定的線程數(shù)量大于所述預定義的最大線程閾值,則生成出錯消息。
7.如權利要求6所述的方法,其特征在于,還包括在分配線程以處理所接收的請求之 后,增加分配給所述子應用程序的至少一個的線程數(shù)量。
8.如權利要求6所述的方法,其特征在于,所述配置信息還包括預定義的最大等待時間閾值,并且還包括確定所述子應用程序中的至少一個的等待時間;以及將所確定的所述子應用程序中的至少一個的等待時間與所述預定義的最大等待時間 閾值作比較。
9.如權利要求8所述的方法,其特征在于,接收所述請求包括接收來自客戶機的所述 請求,并且還包括如果所確定的等待時間大于所述預定義的最大等待時間閾值,則將出錯 消息發(fā)送給所述客戶機。
10.如權利要求8所述的方法,其特征在于,還包括如果所確定的等待時間大于所述預 定義的最大等待時間閾值,則減小所述預定義的最大線程閾值。
11.如權利要求8所述的方法,其特征在于,還包括如果所確定的等待時間大于所述預 定義的最大等待時間閾值,則將所述預定義的最大線程閾值減小到數(shù)量一。
12.如權利要求6所述的方法,其特征在于,接收所述請求包括接收來自客戶機的所述 請求,分配的線程處理所接收的請求,并且還包括將指示滿足所接收的請求的響應發(fā)送給所述客戶機;以及在將所述響應發(fā)送給所述客戶機之后,將分配給所述子應用程序中的至少一個的線程數(shù)量減一。
13.如權利要求6所述的方法,其特征在于,確定所述子應用程序中的至少一個的等待 時間包括在預定義的時間段內(nèi)計算所述多個子應用程序中的至少一個的平均響應時間用 于處理請求。
14.如權利要求6所述的方法,其特征在于,確定所述子應用程序中的至少一個的等待 時間包括計算所述子應用程序中的至少一個的平均響應時間用于處理預定義數(shù)量的請求。
15.如權利要求1所述的方法,其特征在于,一種或多種計算機可讀介質(zhì)具有計算機可 執(zhí)行組件,所述組件包括接口組件,所述接口組件當被至少一個處理器執(zhí)行時使得所述至少一個處理器接收 應用程序和多個子應用程序的配置信息,并且還接收對所述子應用程序中的至少一個的請 求。線程池組件,所述線程池組件當被至少一個處理器執(zhí)行時使得所述至少一個處理器基 于當前分配給所述子應用程序的至少一個的線程數(shù)量與預定義的最大線程閾值的比較,來 分配線程用于處理由所述接口組件接收的請求。等待時間組件,所述等待時間組件當被至少一個處理器執(zhí)行時使得所述至少一個處理 器確定所述子應用程序中的至少一個的等待時間;以及閾值組件,所述閾值組件當被至少一個處理執(zhí)行時使得所述至少一個處理器基于由所 述等待時間組件所確定的等待時間來改變所述預定義的最大線程閾值。
全文摘要
動態(tài)地管理與多個子應用程序相關聯(lián)的線程池。接收對子應用程序中的至少一個的請求。確定當前分配給子應用程序中的至少一個的線程數(shù)量。將所確定的線程數(shù)量與預定義的最大線程閾值作比較。如果所確定的線程數(shù)據(jù)不大于預定義的最大線程閾值,則分配線程池中的線程以處理所接收的請求。各實施例使得能夠控制線程池中分配給子應用程序中的每一個的線程數(shù)量。另一些實施例基于子應用程序的等待時間來管理子應用程序的線程。
文檔編號G06F9/46GK102147746SQ20111006057
公開日2011年8月10日 申請日期2011年3月4日 優(yōu)先權日2010年3月5日
發(fā)明者R·T·高達 申請人:微軟公司