java queue 實戰

Queue接口與List、Set同一級別,都是繼承了Collection接口。LinkedList實現了Queue接 口。Queue接口窄化了對LinkedList的方法的訪問權限(即在方法中的參數類型如果是Queue時,就完全只能訪問Queue接口所定義的方法 了,而不能直接訪問 LinkedList的非Queue的方法),以使得只有恰當的方法纔可以使用。BlockingQueue 繼承了Queue接口。

 

隊列是一種數據結構.它有兩個基本操作:在隊列尾部加人一個元素,和從隊列頭部移除一個元素就是說,隊列以一種先進先出的方式管理數據,如果你試圖向一個 已經滿了的阻塞隊列中添加一個元素或者是從一個空的阻塞隊列中移除一個元索,將導致線程阻塞.在多線程進行合作時,阻塞隊列是很有用的工具。工作者線程可 以定期地把中間結果存到阻塞隊列中而其他工作者線線程把中間結果取出並在將來修改它們。隊列會自動平衡負載。如果第一個線程集運行得比第二個慢,則第二個 線程集在等待結果時就會阻塞。如果第一個線程集運行得快,那麼它將等待第二個線程集趕上來。下表顯示了jdk1.5中的阻塞隊列的操作:

 

add        增加一個元索                     如果隊列已滿,則拋出一個IIIegaISlabEepeplian異常
remove   移除並返回隊列頭部的元素    如果隊列爲空,則拋出一個NoSuchElementException異常
element  返回隊列頭部的元素             如果隊列爲空,則拋出一個NoSuchElementException異常
offer       添加一個元素並返回true       如果隊列已滿,則返回false
poll         移除並返問隊列頭部的元素    如果隊列爲空,則返回null
peek       返回隊列頭部的元素             如果隊列爲空,則返回null
put         添加一個元素                      如果隊列滿,則阻塞
take        移除並返回隊列頭部的元素    

發佈了120 篇原創文章 · 獲贊 6 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章