windows核心编程笔记第十一章线程池(thewindowsthrea_第1页
windows核心编程笔记第十一章线程池(thewindowsthrea_第2页
windows核心编程笔记第十一章线程池(thewindowsthrea_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、windows 核心编程(第五版)笔记第十一章线程池(thewindowsthrea.Windows 核心编程(第五版)笔记 第十一章 线程池 (TheWindows Thread Pool)第十一章 线程池线程池的目的就是为了减少创建和销毁线程的额外开销,利用已经存在的线程多次循环执行多个任务从而提高系统的 处理能力 .线程池会自动地根据内制的算法增加或减少线程池中的线 程或为程序增加新的线程池。1. 异步方法调用异步方法调用有以下两种方法:(1)线程函数原型 (回调函数 )VOID NTAPISimpleCallbackPTP_CALLBACK_INSTANCE pInstance, /

2、See "CallbackTermination Actions" sectionPVOID pvContext );TrySubmitThreadpoolCallback该函数将线程函数执 行请求发到线程池 ,并将一个 "工作项目 " 添加到线程池的队 列中。注:我们不需要调用 CreateThread函数,线程池中的线程会执行我们的回调函数(2)显示控制 " 工作项目 "CreateThreadpoolWork 创建一个工作项目等待线程函数执SubmitThreadpoolWork 将工作项目提交到线程池中,一个工作项目可以多次提

3、交到 线程池中。WaitForThreadpoolWorkCallbacks行完毕或取消执行线程函数CreateThreadpoolWork 要求的线程函数原型:VOID CALLBACK WorkCallback(PTP_CALLBACK_INSTANCE Instance,PVOID Context,PTP_WORK Work);VOID WaitForThreadpoolWorkCallbacks(PTP_WORK pWork,);2. 时间间隔内调用函数(1)CreateThreadpoolTimer 要求的线程函数原型VOID CALLBACKTimeoutCallback(PTP_

4、CALLBACK_INSTANCE pInstance, / See "CallbackTermination Actions" sectionPVOID pvContext,PTP_TIMER pTimer);(2)步骤CreateThreadpoolTimerSetThreadpoolTimerWaitForThreadpoolTimerCallbacksCloseThreadpoolTimer3. 当内核对象处于 Signal 状态时调用函数 当指定的内核对象变 成 Signal 状态或等待超时,线程池会用户指定的线程函数。之后当内核对象再次 变成 Signal 状态

5、时 ,线程函数不会被调用,除非再次调用 SetThreadpoolWait 注册线程函数。(1)CreateThreadpoolWait 要求的线程函数原型VOID CALLBACKWaitCallback(PTP_CALLBACK_INSTANCE pInstance, / See "Callback Termination Actions" sectionPVOID Context,PTP_WAIT Wait,TP_WAIT_RESULT WaitResult);CreateThreadpoolWait SetThreadpoolWait不允许多次注册同样的Handle

6、,但是我们可以用DuplicateHandle 函数复制一个句柄 然后再注册。WaitForThreadpoolWaitCallbacksCloseThreadpoolWait4. 当异步 I/O 请求结束后调用函数To be filled5. 回调终结后的操作和私有线程To be filled6. Common APITrySubmitThreadpoolCallbackCreateThreadpoolWorkSubmitThreadpoolWork WaitForThreadpoolWorkCallbacks CloseThreadpoolWorkCreateThreadpoolTimer SetThreadpoolTimerWaitForThreadpoolTimerCallbacks CloseThreadpoolTimerCreateThreadpoolWait SetThreadpoolWaitWaitFo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论