?java.util.concurrent包下的新類。LinkedBlockingQueue就是其中之一,是一個阻塞的線程安全的隊列,底層采用鏈表實現(xiàn)。
? LinkedBlockingQueue構(gòu)造的時候若沒有指定大小,則默認(rèn)大小為Integer.MAX_VALUE,當(dāng)然也可以在構(gòu)造函數(shù)的參數(shù)中指定大小。LinkedBlockingQueue不接受null。
添加元素的方法有三個:add,put,offer,且這三個元素都是向隊列尾部添加元素的意思。
區(qū)別:
add方法在添加元素的時候,若超出了度列的長度會直接拋出異常:
?put方法,若向隊尾添加元素的時候發(fā)現(xiàn)隊列已經(jīng)滿了會發(fā)生阻塞一直等待空間,以加入元素。
?offer方法在添加元素時,如果發(fā)現(xiàn)隊列已滿無法添加的話,會直接返回false。? ??
從隊列中取出并移除頭元素的方法有:poll,remove,take。? ??
? ??? ??poll: 若隊列為空,返回null。
? ??? ??remove:若隊列為空,拋出NoSuchElementException異常。
? ??? ??take:若隊列為空,發(fā)生阻塞,等待有元素。