windows核心編程筆記第十一章線程池(thewindowsthrea_第1頁
windows核心編程筆記第十一章線程池(thewindowsthrea_第2頁
windows核心編程筆記第十一章線程池(thewindowsthrea_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、windows 核心編程(第五版)筆記第十一章線程池(thewindowsthrea.Windows 核心編程(第五版)筆記 第十一章 線程池 (TheWindows Thread Pool)第十一章 線程池線程池的目的就是為了減少創(chuàng)建和銷毀線程的額外開銷,利用已經(jīng)存在的線程多次循環(huán)執(zhí)行多個(gè)任務(wù)從而提高系統(tǒng)的 處理能力 .線程池會(huì)自動(dòng)地根據(jù)內(nèi)制的算法增加或減少線程池中的線 程或?yàn)槌绦蛟黾有碌木€程池。1. 異步方法調(diào)用異步方法調(diào)用有以下兩種方法:(1)線程函數(shù)原型 (回調(diào)函數(shù) )VOID NTAPISimpleCallbackPTP_CALLBACK_INSTANCE pInstance, /

2、See "CallbackTermination Actions" sectionPVOID pvContext );TrySubmitThreadpoolCallback該函數(shù)將線程函數(shù)執(zhí) 行請(qǐng)求發(fā)到線程池 ,并將一個(gè) "工作項(xiàng)目 " 添加到線程池的隊(duì) 列中。注:我們不需要調(diào)用 CreateThread函數(shù),線程池中的線程會(huì)執(zhí)行我們的回調(diào)函數(shù)(2)顯示控制 " 工作項(xiàng)目 "CreateThreadpoolWork 創(chuàng)建一個(gè)工作項(xiàng)目等待線程函數(shù)執(zhí)SubmitThreadpoolWork 將工作項(xiàng)目提交到線程池中,一個(gè)工作項(xiàng)目可以多次提

3、交到 線程池中。WaitForThreadpoolWorkCallbacks行完畢或取消執(zhí)行線程函數(shù)CreateThreadpoolWork 要求的線程函數(shù)原型:VOID CALLBACK WorkCallback(PTP_CALLBACK_INSTANCE Instance,PVOID Context,PTP_WORK Work);VOID WaitForThreadpoolWorkCallbacks(PTP_WORK pWork,);2. 時(shí)間間隔內(nèi)調(diào)用函數(shù)(1)CreateThreadpoolTimer 要求的線程函數(shù)原型VOID CALLBACKTimeoutCallback(PTP_

4、CALLBACK_INSTANCE pInstance, / See "CallbackTermination Actions" sectionPVOID pvContext,PTP_TIMER pTimer);(2)步驟CreateThreadpoolTimerSetThreadpoolTimerWaitForThreadpoolTimerCallbacksCloseThreadpoolTimer3. 當(dāng)內(nèi)核對(duì)象處于 Signal 狀態(tài)時(shí)調(diào)用函數(shù) 當(dāng)指定的內(nèi)核對(duì)象變 成 Signal 狀態(tài)或等待超時(shí),線程池會(huì)用戶指定的線程函數(shù)。之后當(dāng)內(nèi)核對(duì)象再次 變成 Signal 狀態(tài)

5、時(shí) ,線程函數(shù)不會(huì)被調(diào)用,除非再次調(diào)用 SetThreadpoolWait 注冊(cè)線程函數(shù)。(1)CreateThreadpoolWait 要求的線程函數(shù)原型VOID CALLBACKWaitCallback(PTP_CALLBACK_INSTANCE pInstance, / See "Callback Termination Actions" sectionPVOID Context,PTP_WAIT Wait,TP_WAIT_RESULT WaitResult);CreateThreadpoolWait SetThreadpoolWait不允許多次注冊(cè)同樣的Handle

6、,但是我們可以用DuplicateHandle 函數(shù)復(fù)制一個(gè)句柄 然后再注冊(cè)。WaitForThreadpoolWaitCallbacksCloseThreadpoolWait4. 當(dāng)異步 I/O 請(qǐng)求結(jié)束后調(diào)用函數(shù)To be filled5. 回調(diào)終結(jié)后的操作和私有線程To be filled6. Common APITrySubmitThreadpoolCallbackCreateThreadpoolWorkSubmitThreadpoolWork WaitForThreadpoolWorkCallbacks CloseThreadpoolWorkCreateThreadpoolTimer SetThreadpoolTimerWaitForThreadpoolTimerCallbacks CloseThreadpoolTimerCreateThreadpoolWait SetThreadpoolWaitWaitFo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論