FAQ-BlockingQueue
2018-08-20 本文已影响0人
afewnotes
- BlockingQueue
-
阻塞队列接口,多用于生产者消费者场景,解决多线程中数据传输的问题
-
队列非空才能取出元素,队列有空闲空间才能放入元素,否则等待
-
Summary of BlockingQueue methods (from jdk source code)
op Throws exception Special value ( null or false) Blocks Times out Insert add(e) offer(e) put(e) offer(e, time, unit) Remove remove() poll() take() poll(time, unit) Examine element() peek() not applicable not applicable -
不接受
null
元素 -
容量可限制,未限制时为
Integer.MAX_VALUE
-
实现类
blocking queue diagram- 实现类都是线程安全的(例外,批量操作如
addAll
,containsAll
,retainAll
和removeAll
可能出现部分成功的情况)
- 实现类都是线程安全的(例外,批量操作如
-
java.util.concurrent.ThreadPoolExecutor
线程池使用的就是阻塞队列处理任务
-