为win32 / C阻塞线程生产者/消费者的队列
发布时间:2020-12-14 01:36:35 所属栏目:Windows 来源:网络整理
导读:我正在尝试用自定义队列替换一些线程通信,生产者当前正在使用 PostThreadMessage,使用者正在使用WaitForSingleObject / PeekMessage. http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html将
我正在尝试用自定义队列替换一些线程通信,生产者当前正在使用
PostThreadMessage,使用者正在使用WaitForSingleObject / PeekMessage. http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html将是我需要的,但是升力和C不是一个选择. 不想重新实现轮子,是否有人在C中实现这样的队列? 解决方法
使用IO完成端口(见
here)作为队列;它们不需要仅与I / O操作相关,并且非常易于使用并且执行得非常好,因为可以设置内核来限制线程池中运行的线程数.
基本上你调用PostQueuedCompletionStatus()将项放在队列上,GetQueuedCompletionStatus()将它们取下.您无需担心同步等问题. 如果您需要更多帮助才能使它工作,那么您可以查看我的free high performance server framework,其中包含相当多的IOCP代码,包括与I / O无关的独立线程池.请注意,这是在C中,但它应该让您很好地了解C API如何挂起. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Windows上为tomcat6设置CATALINA_OPTS不起作用
- WinRT和.Net框架
- active-directory – 将Windows Server 2016提升为Server 2
- 如何编程防止Windows从硬盘驱动器旋转?
- windows – 检测用户何时截取我的程序的屏幕截图
- Windows – 如何编程检查“密码必须满足复杂性要求”组策略
- windows-server-2003 – 永久绑定的iSCSI卷在重新引导时不会
- bing-maps – 如何在Bing Maps Control中添加“你在这里”标
- gtk3 – 自gtk版本3.22起不推荐使用’gdk_screen_get_activ
- windows-phone-7 – Windows 7 Phone应用程序存储凭据的最佳
推荐文章
站长推荐
热点阅读