关于多生产者单一消费者问题的信号量

时间:2011-03-04 12:52:16

标签: c++ multithreading

我需要就C ++的这个案例研究提出建议。

我已经使用了Queue,其中有多个Thread 20 Producer线程在其上写入。有一个Consumer线程将从队列中读取并处理它。 我打算使用临界区和信号量来实现同步。

AddTail - 在队列中添加消息。 RemoveHead - 从队列中删除数据。

我已将队列长度限制为10。

Crtical部分将保护wrting或/ Reading问题。 信号量将同步对队列的访问。

让我知道任何其他可行的解决方案。

1 个答案:

答案 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/211601363http://www.drdobbs.com/high-performance-computing/210604448