1、锁的数量不一样 :
ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和消费用的是同一个锁。
LinkedBlockingQueue实现的队列中的锁是分离的,即生产用的是putLock,消费是takeLock 。
2、队列大小 :
ArrayBlockingQueue实现的队列中必须指定队列的大小。
LinkedBlockingQueue实现的队列中可以不指定队列的大小,但是默认是Integer.MAX_VALUE。
3、数据结构不一样:
ArrayBlockingQueue基础数据结构 是Objects [];
LinkedBlockingQueue基础数据结构 是链表。