ArrayBlockingQueue

数组作为数据存储容器
添加和移除操作采用的是同一个ReentrantLock;

LinkedBlockingQueue

以Node节点作为连接对象的链表
�锁是分离的,即添加的锁是putLock,移除采用的是takeLock。
若用默认大小且当生产速度大于消费速度时候,有可能会内存溢出