生活随笔
收集整理的這篇文章主要介紹了
ArrayBlockingQueue队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ArrayBlockingQueue
也稱為有界隊列
基于數組的阻塞隊列實現
內部,維護了一個定長數組,便于緩存隊列中的數據對象
內部,沒有實現讀寫分離,意味著生產者、消費者不能完全并行
長度需要定義,不指定會報錯
可以指定先進先出,或者先進后出
package
com.bjsxt.base.coll013import java
.util.ArrayList
import java
.util.List
import java
.util.concurrent.ArrayBlockingQueue
import java
.util.concurrent.ConcurrentLinkedQueue
import java
.util.concurrent.LinkedBlockingQueue
import java
.util.concurrent.SynchronousQueue
import java
.util.concurrent.TimeUnitimport javax
.swing.text.html.HTMLDocument.Iteratorpublic class UseQueue {public static void main(String[] args) throws Exception {ArrayBlockingQueue<String> array = new ArrayBlockingQueue<String>(
5)array
.put(
"a")array
.put(
"b")array
.add(
"c")array
.add(
"d")array
.add(
"e")System
.out.println(array
.offer(
"a",
3, TimeUnit
.SECONDS))}
}
3秒之內
如果,a元素加進去了,返回true
如果,a元素沒有加進去,返回false
運行
package
com.bjsxt.base.coll013import java
.util.ArrayList
import java
.util.List
import java
.util.concurrent.ArrayBlockingQueue
import java
.util.concurrent.ConcurrentLinkedQueue
import java
.util.concurrent.LinkedBlockingQueue
import java
.util.concurrent.SynchronousQueue
import java
.util.concurrent.TimeUnitimport javax
.swing.text.html.HTMLDocument.Iteratorpublic class UseQueue {public static void main(String[] args) throws Exception {ArrayBlockingQueue<String> array = new ArrayBlockingQueue<String>(
5)array
.put(
"a")array
.put(
"b")array
.add(
"c")array
.add(
"d")array
.add(
"e")array
.add(
"f")System
.out.println(array
.offer(
"a",
3, TimeUnit
.SECONDS))}
}
定義長度為5
添加6個元素,直接報錯
運行
總結
以上是生活随笔為你收集整理的ArrayBlockingQueue队列的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。