BlockingQueue用法:
通常用于在线程上生存另一个线程消耗的对象
生成线程将继续生成新对象并将它们插入队列,知道队列达到它包含内容的上限,理论上这个上限取决于你的硬盘有多大,当队列达到上限时,会进入阻塞状态。此时,当你尝试插入新对象时会阻止生成线程,它一直被阻塞,直到消费线程将一个对象从队列中取出。
消费线程不断将对象从阻塞队列中取出并处理它们,如果消费线程试图将对象从空队列中取出,则消耗线程将被阻塞,直到生成线程将对象放入队列
抛出异常 | 特殊价值 | 块 | 超时 | |
插入 | add(o) | offer(o) | put() | offer(o,timeout,timeunit) |
去掉 | remove(o) | poll() | take() | poll(timeout,timeunit) |
检查 | element() | peek() |