ArrayBlockingQueue
长度:固定(有界队列);
锁类型:存取共用一个ReentrantLock锁,存取互斥;
游标:两个index表示头和尾;
阻塞条件:两个Condition标识空或者满,每次的存取操作都会唤醒对方Condition;
LinkedBlockingQueue
长度:可固定(有界),可Integer.MAX_VALUE(无界);
锁类型:存取分别一个ReentrantLock锁,存取分离,效率高;
游标:head和last指针分别指向头尾;
长度:固定(有界队列);
锁类型:存取共用一个ReentrantLock锁,存取互斥;
游标:两个index表示头和尾;
阻塞条件:两个Condition标识空或者满,每次的存取操作都会唤醒对方Condition;
长度:可固定(有界),可Integer.MAX_VALUE(无界);
锁类型:存取分别一个ReentrantLock锁,存取分离,效率高;
游标:head和last指针分别指向头尾;