ArrayBlockingQueue與LinkedBlockingQueue區別


1、ArrayBlockingQueue采用動態數組

      takeIndex和putIndex 表示存和取的兩個數組下標。

      有界 (必須指明數組大小)

      不能存放null

      讀和寫公用一個ReentrantLock

 

2、LinkedBlockingQueue采用鏈表實現

     默認無界(可以在初始化時指明大小)

    不能存放null

    讀和寫有兩把鎖ReentrantLock takeLock和putLock

 

使用場景:

ArrayBlockingQueue預先分配好一段連續內存,更穩定

LinkedBlockingQueue 讀寫鎖分離,吞吐量更大

    


免責聲明!

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



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