突击并发编程JUC系列-阻塞队列 BlockingQueue( 三 )
LinkedBlockingDequeLinkedBlockingDeque 是一个由链表结构组成的双向阻塞队列 。 所谓双向队列指的是可以从队列的两端插入和移出元素 。 双向队列因为多了一个操作队列的入口 , 在多线程同时入队时 , 也就减少了一半的竞争 。 相比其他的阻塞队列 ,LinkedBlockingDeque 多了 addFirst 、 addLast 、 offerFirst 、 offerLast 、 peekFirst 和 peekLast 等方法 , 以 First 单词结尾的方法 , 表示插入、获取(peek)或移除双端队列的第一个元素 。 以 Last 单词结尾的方法 , 表示插入、获取或移除双端队列的最后一个元素 。 另外 , 插入方法 add 等同于 addLast, 移除方法 remove 等效于 removeFirst。 但是 take 方法却等同于 takeFirst, 不知道是不是 JDK 的 bug , 使用时还是用带有 First 和 Last 后缀的方法更清楚 。
在初始化 LinkedBlockingDeque 时可以设置容量防止其过度膨胀 。 另外 , 双向阻塞队列可以运用在“工作窃取”模式中 。
突击并发编程JUC系列演示代码地址:
作者:故人
【突击并发编程JUC系列-阻塞队列 BlockingQueue】出处:
- Store|苹果将在韩国开设第二家Apple Store直营店 并发布纪念壁
- Linux(服务器编程):百万并发服务器系统参数调优
- 菜鸟学编程,不懂C++ this指针?还不赶快来学一学
- 郑州移动5G通信建设 青年突击队
- 编程猫领衔,9家编程app测评一览详解
- 并发容器ConcurrentHashMap
- 都说编程要逻辑好,如何理解这个逻辑
- 非计算机专业在大一期间该选修计算机基础还是Python编程
- Java安全之Javassist动态编程
- 一分钟编程之让百度谷歌一下