Ano*_*nym 4 c winapi multithreading
我正在尝试用自定义队列替换一些线程通信,生产者当前正在使用PostThreadMessage,消费者正在使用WaitForSingleObject/PeekMessage.
http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html将是我所需要的,但是升级和C++都不是一个选择.
不想重新实现轮子,是否有人在C中实现这样的队列?
使用IO完成端口(请参阅此处)作为队列; 它们不需要仅仅与I/O操作相关,并且非常易于使用并且执行得非常好,因为可以设置内核来限制线程池中运行的线程数.
基本上你打电话PostQueuedCompletionStatus()把物品放在队列上并GetQueuedCompletionStatus()把它们拿走.您无需担心同步等问题.
如果你需要更多的帮助来使它工作,那么你可以看看我的免费高性能服务器框架,其中包括相当多的IOCP代码,包括一个与我无关的独立线程池/ O.请注意,这是在C++中,但它应该让您很好地了解C API如何挂起.
| 归档时间: |
|
| 查看次数: |
3071 次 |
| 最近记录: |