LinkedBlockingQueue阻塞隊列詳解


主要api

  java.util.concurrent包下的新類。LinkedBlockingQueue就是其中之一,是一個阻塞的線程安全的隊列,底層采用鏈表實現。

     
 LinkedBlockingQueue構造的時候若沒有指定大小,則默認大小為Integer.MAX_VALUE,當然也可以在構造函數的參數中指定大小。LinkedBlockingQueue不接受null。

 添加元素的方法有三個:add,put,offer,且這三個元素都是向隊列尾部添加元素的意思。

區別:

        add方法在添加元素的時候,若超出了度列的長度會直接拋出異常: 

        put方法,若向隊尾添加元素的時候發現隊列已經滿了會發生阻塞一直等待空間,以加入元素。 

        offer方法在添加元素時,如果發現隊列已滿無法添加的話,會直接返回false。     

從隊列中取出並移除頭元素的方法有:poll,remove,take。     

        poll: 若隊列為空,返回null。

        remove:若隊列為空,拋出NoSuchElementException異常。

        take:若隊列為空,發生阻塞,等待有元素。


免責聲明!

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



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