Windows IOCP同步策略

时间:2017-06-22 20:26:29

标签: c++ multithreading iocp

美好的一天。

我正在将我们的服务器应用程序(主要是UDP)从每插槽线程策略移动到IOCP。 IOCP部分运行良好,但发送/接收数据的踏板不进行实际的数据处理。现在,他们将收到的数据包保存在受关键部分保护的std :: deque中。

真正的工作是由另一个受100毫秒周期约束的线程完成的。似乎存在问题,来自双端队列的插入/检索引入了延迟,这些延迟会导致逻辑问题。基本上我有一个消费者/多个生产者类型的场景。

我调试和分析了我的结论是它是一个线程饥饿。我试图使用一个Event对象来通知线程它可以检索数据,但这似乎也没有帮助。有没有比使用CRITICAL_SECTION保护数据结构更有效的方法?

提前致谢, 迈克尔

0 个答案:

没有答案