在一个简单的生产者-消费者场景中,我有 2 个线程围绕 LinkedBlockingQueue
进行管理。
在消费者线程中,我使用 take()
即我想在元素进入队列时阻止消费者。
如果在生产者线程中我使用 offer()
添加到队列而不是 put()
可以吗?这会引起任何问题吗?
我的意思是,使用 take()
是否意味着我也应该使用 put
?
我想不是,但我想完全确定。
最佳答案
不,无论您在消费者端使用什么,在生产者上使用 offer
都没有问题。
这将是一种常见的机制,允许生产者推送到多个队列之一,它可以在每个队列上调用 offer
直到成功。它甚至可以在最后一个队列上调用 put
。
关于java - LinkedBlockingQueue - 生产者/消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36793754/