【发布时间】:2011-02-07 23:00:24
【问题描述】:
这是一个设计问题。
我总共有 6 个线程和两个 FIFO 队列。这 6 个线程是:
- 2 个生产者产生“条目”(无符号整数)并排入队列 Queue1
- 2 个半消费者从 queue1 出列条目并入队到 queue2
- 2 个消费者从 queue2 出列
条目总数为500。
我的问题是:当所有 500 个条目都通过队列 1 路由到队列 2 并出队时,如何让这 2 个半消费者和消费者保持活力?对于生产者线程,这很容易,因为我可以维护全局条目数。
因此,如果 total_entries = 500,则从例程返回(产生线程死亡)。我想使用一种有效的方法而不是一些 hack。
环境:Linux、pthread、C/C++。
【问题讨论】:
标签: c++ linux multithreading synchronization pthreads