PostQueuedCompletionStatus

        PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义:

BOOL PostQueuedCompletionStatus(   
 HANDLE CompletlonPort,   
    DW0RD dwNumberOfBytesTrlansferred,   
 DWORD dwCompletlonKey,   
LPOVERLAPPED lpoverlapped,  
);  

       其中,CompletionPort参数指定想向其发送一个完成数据包的完成端口对象。而就dwNumberOfBytesTransferred,dwCompletionKey和lpOverlapped这三个参数来说.每—个都允许我们指定—个值,直接传递给GetQueuedCompletionStatus函数中对应的参数。这样—来。—个工作者线程收到传递过来的三个GetQueuedCompletionStatus函数参数后,便可根据由这三个参数的某一个设置的特殊值,决定何时应该退出。例如,可用dwCompletionPort参数传递0值,而—个工作者线程会将其解释成中止指令。一旦所有工作者线程都已关闭,便可使用CloseHandle函数,关闭完成端口。最终安全退出程序。         PostQueuedCompletionStatus函数提供了一种方式来与线程池中的所有线程进行通信。如,当用户终止服务应用程序时,我们想要所有线程都完全利索地退出。但是如果各线程还在等待完成端口而又没有已完成的I/O 请求,那么它们将无法被唤醒。        通过为线程池中的每个线程都调用一次PostQueuedCompletionStatus,我们可以将它们都唤醒。每个线程会对GetQueuedCompletionStatus的返回值进行检查,如果发现应用程序正在终止,那么它们就可以进行清理工作并正常地退出。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的SOD蜜

.net异步性能测试(包括ASP.NET MVC WebAPI异步方法)

很久没有写博客了,今年做的产品公司这两天刚刚开了发布会,稍微清闲下来,想想我们做的产品还有没有性能优化空间,于是想到了.Net的异步可以优化性能,但到底能够提升...

2435
来自专栏小灰灰

Java之写文件

java之写文件 上一篇写了java读取文件的各种操作姿势,这里也补一个写文件的工具类,比较简单 1. 读写类介绍 (和上一篇差不多) java读写文件的I...

1806
来自专栏个人分享

最最简单的~WordCount¬

步骤1:textFile先生成HadoopRDD,然后再通过map操作生成MappedRDD.

711
来自专栏用户2442861的专栏

java IO流之三 使用缓冲流来读写文件

http://blog.csdn.net/a107494639/article/details/7586689

433
来自专栏Java后端技术

Java实现文件复制的四种方式

背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制。

573
来自专栏用户2442861的专栏

Python 多线程(threading模块)

threading是python标准库中的模块,有些朋友查到会有thread这个模块,但是在python3里面只剩下threading这个模块了,因为thre...

621
来自专栏Java帮帮-微信公众号-技术文章全总结

Jdbc知识点全整理,你值得拥有 ​(1)

Jdbc JDBC入门 1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操...

2754
来自专栏乐沙弥的世界

加快mydumper与myloader导出导入

    mydumper与myloader是一个优秀的第三方mysql数据库逻辑备份恢复工具,使用多线程的导出与导入。弥补了mysqldump单线程的不足。本文...

781
来自专栏鬼谷君

python多线程获取子线程任务返回值

924
来自专栏编码小白

tomcat源码解读四 tomcat中的processer

     Processor是一个接口,针对于不同协议下具有不同的具体实现类,其实现类的具体功能是处理http请求,主要是对协议进行解析,状态处理以及响应。然后...

4097

扫码关注云+社区