add(e) | offer(e) | put(e) | offer(e,time,unit) |
添加元素到隊列中,如果隊列滿了,繼續插入元素會報錯, IllegalStateException | 添加元素到隊列,同時會返回元素是否插入成功的狀態,如果成功則返回 true | 當阻塞隊列滿了以後,生產者繼續通過 put添加元素,隊列會一直阻塞生產者線程,知道隊列可用 | 當阻塞隊列滿了以後繼續添加元素,生產者線程會被阻塞指定時間,如果超時,則線程直接退出 |
remove() | poll() | take() | poll(e,time,unit) |
當隊列爲空時,調用 remove 會返回 false,如果元素移除成功,則返回 true | 當隊列中存在元素,則從隊列中取出一個元素,如果隊列爲空,則直接返回 null | 基於阻塞的方式獲取隊列中的元素,如果隊列爲空,則 take 方法會一直阻塞,直到隊列中有新的數據可以消費 | 帶超時機制的獲取數據,如果隊列爲空,則會等待指定的時間再去獲取元素返回 |
peek() 獲取隊列的頭但不移除此隊列的頭。如果此隊列爲空,則返回 null
element() 獲取隊列的頭但不移除此隊列的頭。如果此隊列爲空,則將拋出NoSuchElementException異常