欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。