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

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

他说:从提供的性能结果中可以看出,LinkedBlockingQueue获得了最佳的组合(添加和删除元素)性能结果,并且应该是实施生产者(消费者计划)的第一候选人。

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

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

谢谢 !

最佳答案

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

08-16 13:03