LinkedBlockingQueue与ArrayBlockingQueue的区别

1、LinkedBlockingQueue使用链表实现,ArrayBlockingQueue使用环形数组实现
2、LinkedBlockingQueue使用两个重入锁,用于入队和出队(头尾两个)。头部的节点必定为null。ArrayBlockingQueue只有一个锁用于出队与入队。
3、LinkedBlockingQueue 两个锁都是非公平锁。ArrayBlockingQueue默认是非公平锁,构造函数可以指定为公平锁。
4、队列计数方式不一样:ArrayBlockingQueue只需要一个int记录。LinkedBlockingQueue使用AtomicInteger计算(读写可以同时进行,因此可以同时计数)。
5、ArrayBlockingQueue使用数组,因此可以访问和删除给定位置的元素。
以上是 LinkedBlockingQueue与ArrayBlockingQueue的区别 的全部内容, 来源链接: utcz.com/z/514698.html
