当前位置:嗨网首页>书籍在线阅读

03-运用非阻塞线程安全的双端队列

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.2 运用非阻塞线程安全的双端队列

“列表”是最基本的集合。它包含不确定数量的数组元素,允许开发者添加、读取或者删除任何一个位置的数组元素。并发列表允许多线程同时添加、删除数组元素而不会产生任何数据不一致的错误。类似地,我们有双端队列。一个双端队列近似于一个队列,但在双端队列里面,开发者可以向头部和尾部添加或删除数组元素。

本节将介绍如何在并发程序中使用非阻塞双端队列。非阻塞队列提供了一些操作,如果操作没有立刻完成(例如,开发者想从空的数组中获取一个数组元素),则它会抛出一个异常或者返回一个 null 值,这依赖于操作本身。Java 7用 ConcurrentLinkedDeque 类来实现一个非阻塞并发双端队列。

我们将通过下面两个任务来实现一个案例:

  • 添加几千个数组元素到双端队列;
  • 删除双端队列中的数据。