无锁非阻塞并发队列程 ConcurrentLinkedQueue/Deque

有两个无锁非阻塞队列:ConcurrentLinkedQueue和ConcurrentLinkedDeque,它们适用于多个线程并发使用一个队列的场合,都是基于链表实现的,都没有限制大小,是无界的

ConcurrentLinkedQueue实现了Queue接口,表示一个先进先出的队列,从尾部入队,从头部出队,内部是一个单向链表。

ConcurrentLinkedDeque实现了Deque接口,表示一个双端队列,在两端都可以入队和出队,内部是一个双向链表。

这两个类最基础的原理是循环CAS

 

参考: Java编程的逻辑 17.4.1 无锁非阻塞并发队列

  Java并发编程的艺术 6.2 ConcurrentLinkedQueue

  Java并发实现原理:JDK源码剖析 5.4 ConcurrentLinkedQueue/Deque

posted @ 2022-01-27 15:42  草木物语  阅读(225)  评论(0)    收藏  举报