gpt4 book ai didi

java - LinkedBlockingQueue 和 ConcurrentLinkedQueue 有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:15 24 4
gpt4 key购买 nike

我看过博客,但我不确定他的结论是否正确:

http://www.javacodegeeks.com/2010/09/java-best-practices-queue-battle-and.html#ixzz1seaiSLwp

他说:正如您从提供的性能结果中看到的那样,LinkedBlockingQueue 实现了最佳组合(添加和删除元素)性能结果,应该是您实现生产者 - 消费者方案的第一候选者。

我想知道,如果我不在我的代码中使用 lock 会不会更快?

那么为什么 LinkedBlockingQueue 比无锁 Queue(ConcurrentLinkedQueue) 更快?

谢谢!

最佳答案

ConcurrentLinkedQueue 不是阻塞队列。它没有实现 BlockingQueue 接口(interface),因此不提供阻塞方法 put() 和 take()。这些方法对于生产者/消费者设置是必需的,因为您需要安排消费者在没有任何东西可消费时阻塞,以及生产者在消费者消费速度不够快时阻塞。

关于java - LinkedBlockingQueue 和 ConcurrentLinkedQueue 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274608/

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