Java:ArrayBlockingQueue

本文介绍了Java中的ArrayBlockingQueue,这是一个遵循先进先出原则的有界队列。队列容量在创建后不可更改。我们探讨了其关键属性和方法,包括enqueue、dequeue、remove、add/offer、put、带超时的offer和poll方法,以及peek方法。通过源码分析,理解这些方法的具体实现和使用场景。
摘要由CSDN通过智能技术生成

ArrayBlockingQueue是一个有界队列,执行先进先出(FIFO)原则,它是固定大小的,一旦创建,容量就不能被修改。先对部分属性和方法进行简单说明。

属性

items 内部保存对象的数组,这个数组创建后,大小就不会改变了,即使添加和取出元素,都不会影响数组大小,只不过对应位置会被改写
takeIndex 下一个被检索的元素的索引,初始为0,每取出一个元素,+1
putIndex 下一个被添加的元素的索引,初始为0,每添加一个元素,+1
count 队列的数量,不是items的size,取出就-1,添加就+1
lock ReentrantLock锁,贯穿整个队列的操作,保证线程安全
itrs 内部维护一个链表,是元素与其宿主queue共享数据的通道

方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bdmh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值