1、BlockingQueue 是一個接口佣赖,若要使用必須使用其實例化對象袱贮,在java.util.concurrnt包中有以下實現(xiàn)類
- ArrayBlockingQueue
- DelayQueue
- LinkedBlockingQueue
- SynchronousQueue
2、BlockingQueue 向其中放入數(shù)據(jù)和取得數(shù)據(jù)是線程安全
3迄沫、BlockingQueue 的方法
Throws Exception | Special Value | Blocks | Time Out | |
---|---|---|---|---|
insert | add(o) | offer(o) | put(o) | offer(o,timeout,timeUnit) |
remove | remove(o) | poll(o) | take() | poll(timeout,timeUnit) |
examine | element() | peek() |
以上四種行為意味著如下結(jié)果:
1稻扬、Throws Exception:
??如果無法立即執(zhí)行,則拋出異常
2羊瘩、Special Value:
??如果無法立即執(zhí)行泰佳,則返回一個特定的值(通常是true/false)
3、Blocks:
??如果無法立即執(zhí)行尘吗,則直接Block住逝她,直到可以執(zhí)行
4、Time Out:
??如果無法立即執(zhí)行睬捶,則先Block住黔宛,在超時到達之時,還無法執(zhí)行擒贸,則返回一個特定的值(通常是true/false)