目录

hymn

忽有故人心头过,回首山河已是秋。

java 并发队列总结

ConcurrentLinkedQueue

无界非阻塞队列,底层用单链表实现,出队和入队用cas实现。

LinkedBlockingQueue

底层用单链表实现,有界,独占锁实现出队和入队,有两个锁,takeLock和putLock

takeLock:控制同时只能有一个线程可以从队头获取元素,其他线程等待

putLock:控制同时只能有一个线程可以从队尾添加元素,其他线程等待

ArrayBlockingQueue

底层数组实现,通过锁实现出队和入队,有界(可以指定,默认Integer.Max_VALUE)

PriorityBlockingQueue

带有优先级的无界队列,底层通过二叉树堆实现,

DelayQueue

通过 PriorityBlockingQueue来装数据,只有过期的数据才会出队。


标题:java 并发队列总结
作者:hymn
地址:https://dxyhymn.com/articles/2020/12/29/1609213199318.html