生产者/消费者场景中的双向流动

时间:2012-10-30 09:34:13

标签: java multithreading

我正在尝试找到解决排队问题的方法。在典型的场景中,生产者将一些东西放在队列中,而消费者将其取消。如果我们有一个也消耗的生产者和最初从队列中取出某些东西然后将某些东西(如结果)放回队列的消费者,那怎么样呢。因此,如果您遵循,则有双向流程。是否可以同步两个线程来有效地执行此操作?天真地,我在我的一个线程的run方法中放了一个循环,发现另一个线程只会运行一次然后死掉。道歉,如果这看起来很模糊......可能有人能指出我正确的方向

干杯

1 个答案:

答案 0 :(得分:2)

如果你只使用ConcurrentLinkedQueue,你可以从任何线程中取出它。生产者和消费者线程之间没有严格的区别,队列对象保证了每个操作的一致性。