1、BlockingQueue 是一个接口,若要使用必须使用其实例化对象,在java.util.concurrnt包中有以下实现类
- ArrayBlockingQueue
- DelayQueue
- LinkedBlockingQueue
- SynchronousQueue
2、BlockingQueue 向其中放入数据和取得数据是线程安全
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() |
以上四种行为意味着如下结果:
1、Throws Exception:
如果无法立即执行,则抛出异常
2、Special Value:
如果无法立即执行,则返回一个特定的值(通常是true/false)
3、Blocks:
如果无法立即执行,则直接Block住,直到可以执行
4、Time Out:
如果无法立即执行,则先Block住,在超时到达之时,还无法执行,则返回一个特定的值(通常是true/false)
网友评论