Java:ArrayBlockingQueue
Posted bdmh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:ArrayBlockingQueue相关的知识,希望对你有一定的参考价值。
ArrayBlockingQueue是一个有界队列,执行先进先出(FIFO)原则,它是固定大小的,一旦创建,容量就不能被修改。先对部分属性和方法进行简单说明。
属性
items | 内部保存对象的数组,这个数组创建后,大小就不会改变了,即使添加和取出元素,都不会影响数组大小,只不过对应位置会被改写 |
takeIndex | 下一个被检索的元素的索引,初始为0,每取出一个元素,+1 |
putIndex | 下一个被添加的元素的索引,初始为0,每添加一个元素,+1 |
count | 队列的数量,不是items的size,取出就-1,添加就+1 |
lock | ReentrantLock锁,贯穿整个队列的操作,保证线程安全 |
itrs | 内部维护一个链表,是元素与其宿主queue共享数据的通道 |
方法
itemAt(int i) | 取出指定位置的item |
itemAt(Object[] items, int i) | 取出参数items指定位置 |
以上是关于Java:ArrayBlockingQueue的主要内容,如果未能解决你的问题,请参考以下文章
java集合Queue集合之ArrayBlockingQueue 详解
Java源码解析——集合框架——ArrayBlockingQueue
源码阅读(32):Java中线程安全的QueueDeque结构——ArrayBlockingQueue