5

请快速澄清

我知道BlockingQueues是线程安全的。

这是否意味着我可以将阻塞队列的单个引用传递给所有可以随意丢弃事件以供单个消费者使用的生产者,并且没有任何东西被破坏?

否则,必须生成多达 20 个BlockingQueues可能有或可能没有定期更新的内容,并以任何效率阅读它们似乎是一项不可逾越的任务。

4

2 回答 2

5

这是否意味着我可以将阻塞队列的单个引用传递给所有可以随意丢弃事件以供单个消费者使用的生产者,并且没有任何东西被破坏?

一句话,是的。这是安全的。引用文档

BlockingQueue实现是线程安全的。所有排队方法都使用内部锁或其他形式的并发控制以原子方式实现其效果。

于 2012-12-11T19:50:06.640 回答
1

如果它是线程安全的,则意味着您只需要该队列的一个实例,所有线程都可以访问该实例。并发数据结构管理这些访问。这也意味着您不需要同步。

于 2012-12-11T19:50:59.647 回答