参考文献:
Java并发编程之ConcurrentLinkedQueue详解
J.U.C之collections框架:ConcurrentLinkedQueue
ConcurrentLinkedQueue是一个线程安全的队列,线程安全的队列又分为阻塞队列和非阻塞队列,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 阻塞队列可以通过加锁来实现,非阻塞队列可以通过 CAS 操作实现。
ConcurrentLinkedQueue 适合在对性能要求相对较高,同时对队列的读写存在多个线程同时进行的场景,即如果对队列加锁的成本较高则适合使用无锁的 ConcurrentLinkedQueue 来替代。