gpt4 book ai didi

java - LinkedBlockingQueue 与 ConcurrentLinkedQueue

转载 作者:IT老高 更新时间:2023-10-28 11:26:36 25 4
gpt4 key购买 nike

我的问题与 this question 有关之前问过。在我使用队列在生产者和消费者线程之间进行通信的情况下,人们通常会建议使用 LinkedBlockingQueueConcurrentLinkedQueue

使用其中一种的优点/缺点是什么?

从 API 的角度来看,我可以看到的主要区别是 LinkedBlockingQueue 可以选择有界。

最佳答案

对于生产者/消费者线程,我不确定 ConcurrentLinkedQueue 是否是一个合理的选择 - 它没有实现 BlockingQueue,这是生产者/消费者排队 IMO。您必须调用 poll(),如果没有找到任何内容,请稍等片刻,然后再次进行轮询等...导致新项目进入时出现延迟,并导致效率低下空(由于不必要地从 sleep 中醒来)。

来自 BlockingQueue 的文档:

BlockingQueue implementations are designed to be used primarily for producer-consumer queues

我知道它并没有严格说只有阻塞队列应该用于生产者-消费者队列,但即便如此......

关于java - LinkedBlockingQueue 与 ConcurrentLinkedQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1426754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com