1 什么是BlockingQueue
2 BlockingQueue有什么用
3 ArrayBlockingQueue的用途
1 它是一个线程安全的队列
2 它是一个容量固定的队列
3 它为什么叫blocking
它会让线程的offer和take操作等待。
如果put的时候,发现队列已经满了,那么线程blocking等待。
如果take的时候,发现队列是空的,那么线程blocking等待。
这个实现完全是ReentrantLock的功劳,这也体现了ReentrantLock的Condition的威力,它可以让同步于同一个锁的线程等待不同的条件。这个是synchronized做不到的。