如果我有
到目前为止,我发现两者的区别在于,
LinkedBlockingQueue
的话,为什么要使用 ConcurrentLinkedQueue
呢?我知道 ConcurrentLinkedQueue
是非阻塞的,但是 LinkedBlockingQueue
也可以像 ConcurrentLinkedQueue
一样工作。我会使用 put()
/offer()
方法进行插入,使用 poll()
方法进行删除。如果队列为空,poll()
方法不会等待。而且,LinkedBlockingQueue
也是无界的。因此我可以使用它。到目前为止,我发现两者的区别在于,
ConcurrentLinkedQueue
使用硬件级别的同步机制和比较和交换,而 LinkedBlockingQueue
使用 ReentrantLock
。