阻塞队列
阻塞队列
什么是阻塞队列?
阻塞队列:从名字可以看出,是一个队列,队列是一个先进先出(FIFO)的数据结构。与普通队列的区别是,多了两个方法,阻塞添加和阻塞删除方法
为什么用阻塞队列?
生产者消费者模式里的wait()和notify()需要我们手动去控制,容易出现死锁等问题。阻塞队列可以帮助我们去控制等待和通知。

offer:添加成功时返回true,添加失败返回false,不会阻塞,不会中断
add:添加成功时返回true,添加失败抛出异常,不会阻塞,不会中断
put:没有返回值,会阻塞,会中断
remove:
take 会阻塞,会中断,会一致阻塞,直到取得元素或当前线程中断
poll 会阻塞,会中断,阻塞时间参照timeout.timeUnit,当阻塞时间到了还没取得元素会返回null