LinkedBlockingQueue与ArrayBlockingQueue的区别

编程

1、LinkedBlockingQueue使用链表实现,ArrayBlockingQueue使用环形数组实现

2、LinkedBlockingQueue使用两个重入锁,用于入队和出队(头尾两个)。头部的节点必定为nullArrayBlockingQueue只有一个锁用于出队与入队。

3、LinkedBlockingQueue 两个锁都是非公平锁。ArrayBlockingQueue默认是非公平锁,构造函数可以指定为公平锁。

4、队列计数方式不一样:ArrayBlockingQueue只需要一个int记录。LinkedBlockingQueue使用AtomicInteger计算(读写可以同时进行,因此可以同时计数)。

5、ArrayBlockingQueue使用数组,因此可以访问和删除给定位置的元素。

以上是 LinkedBlockingQueue与ArrayBlockingQueue的区别 的全部内容, 来源链接: utcz.com/z/514698.html

回到顶部