我需要就C ++的这个案例研究提出建议。
我已经使用了Queue,其中有多个Thread 20 Producer线程在其上写入。有一个Consumer线程将从队列中读取并处理它。 我打算使用临界区和信号量来实现同步。
AddTail - 在队列中添加消息。 RemoveHead - 从队列中删除数据。
我已将队列长度限制为10。
Crtical部分将保护wrting或/ Reading问题。 信号量将同步对队列的访问。
让我知道任何其他可行的解决方案。
答案 0 :(得分:5)
编写此类队列的方法有很多种。例如,您可以在http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html
的示例中使用互斥锁和条件变量Herb Sutter在Dobb博士的文章中讨论了队列。请参阅http://www.drdobbs.com/high-performance-computing/211601363和http://www.drdobbs.com/high-performance-computing/210604448