**
ArrayBlockingQueue和LinkedBlockQueue的区别:
**
- 1.队列中锁的实现不同
- ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和消费用的是同一个锁;
- LinkedBlockingQueue实现的队列中的锁是分离的,即生产用的是putLock,消费是takeLock(效率相对较高!)
- 2.队列大小初始化方式不同
- ArrayBlockingQueue实现的队列中必须指定队列的大小; (底层数据结构是数组)
- LinkedBlockingQueue实现的队列中可以不指定队列的大小,但是默认是Integer.MAX _VALUE
(底层数据结构是链表)