ConcurrentLinkedQueue和LinkedBlockingQueue比較


1、阻塞和非阻塞

ConcurrentLinkedQueue是非阻塞的線程安全隊列

 

2、ConcurrentLinkedQueue是無界的 

     LinkedBlockingQueue可以指定大小

 

3、加鎖方式

ConcurrentLinkedQueue使用CAS 原子指令來保證線程安全。吞吐量更高

LinkedBlockingQueue 使用ReentrantLock方式加鎖

 

4、使用場景

LinkedBlockingQueue通常用於生產消費模型,有阻塞的場景。

 

其他非場景如何線程不想阻塞 可考慮ConcurrentLinkedQueue

 

4、ConcurrentLinkedQueue不一致性

ConcurrentLinkedQueue的head tail並非總是指向隊列頭尾元素,可能處於不一致狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM