ArrayBlockingQueue是一个有界,堵塞/非堵塞线程安全的队列。它是基于数组实现的,内部通过ReentrantLock独占锁来控制入队出队操作,通过两个条件变量控制队列为空为满的情况。
ConcurrentLinkedQueue是一种无边界非堵塞线程安全的队列,底层通过单向链表实现,线程安全通过CAS操作实现。下图是它的类图关系,它继承了AbstractQueue类,实现Queue接口,具有Queue的基本特性。
该类内部通过两个volatile类型的Node节点来分别指向队列的首,尾节点。