当前位置:
首页 >
ArrayBlockingQueue原理分析-dequeue方法
发布时间:2024/4/13
44
豆豆
生活随笔
收集整理的这篇文章主要介绍了
ArrayBlockingQueue原理分析-dequeue方法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
这个是出队列的方法,主要是删除队列头部的元素并发返回给客户端
takeIndex,是用来记录拿数据的索引值
private E dequeue() { // assert lock.getHoldCount() == 1; // assert items[takeIndex] != null; final Object[] items = this.items; @SuppressWarnings("unchecked") E x = (E) items[takeIndex]; //默认获取0位置的元素 items[takeIndex] = null;//将该位置的元素设置为 空 if (++takeIndex == items.length)//这里的作用也是一样,如果拿到数组的最大值,那么重置为0,继续从头部位置开始获取数据 takeIndex = 0; count--;//记录 元素个数递减 if (itrs != null) itrs.elementDequeued();//同时更新迭代器中的元素数据 notFull.signal();//触发 因为队列满了以后导致的被阻塞的线程 return x; }
总结
以上是生活随笔为你收集整理的ArrayBlockingQueue原理分析-dequeue方法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: ArrayBlockingQueue原理
- 下一篇: ArrayBlockingQueue原理