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

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

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

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

列表是最简单的集合框架。一个普通列表可以拥有无限个元素,你可以在列表中的任意一个位置对元素进行增删改查。一个并发的列表允许多线程在同一时刻对元素进行增删改查,而且不会产生任何数据不一致的问题。双端队列与列表相似,它的数据结构与普通队列一样,但它却可以在队头或队尾进行元素的增删操作。

在本节中,你将会学到如何在并发程序中使用阻塞线程安全的双端队列。对于阻塞线程安全的双端队列与非阻塞线程安全的双端队列,两者最大的区别就是阻塞双端队列在增删元素的时候,如果队列是满的或者是空的,则会阻塞该线程直到条件满足以后才继续往下执行。Java语言中的 LinkedBlockingDeque 类实现了一个阻塞的双端队列。

根据如下两个任务来实现一个例子:

  • 添加1000个元素到双端队列;
  • 对同一个双端队列进行大规模元素删除的操作。