博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并发集合(一)引言
阅读量:6420 次
发布时间:2019-06-23

本文共 875 字,大约阅读时间需要 2 分钟。

声明:本文是《 》的第六章,作者: Javier Fernández González     译者:许巧辉 校对:方腾飞

在本章中,我们将包含:

引言

在编程中,数据结构是一种基本的元素。几乎每个程序都使用一个或多个数据结构类型来存储和管理它们的数据。Java API提供了Java集合框架(Java Collections framework),它包括可以用来实现许多不同的数据结构的接口、类和算法,你可以在程序中使用它们。

当你需要在并发程序中使用数据集合时,你必须十分小心的选择实现。大多数集合数并不适合用在并发应用程序中,因为它们没有控制并发访问数据。如果一些并发任务共享一个数据结构,而这个数据结构并不适合用在并发任务中,你将会有数据不一致的错误,这将影响到程序的正确运行。ArrayList类就是这种数据结构的一个例子。

Java提供了你可以在你的并发程序中使用的,而且不会有任何问题或不一致的数据集合。基本上,Java提供两种在并发应用程序中使用的集合:

  • 阻塞集合:这种集合包括添加和删除数据的操作。如果操作不能立即进行,是因为集合已满或者为空,该程序将被阻塞,直到操作可以进行。
  • 非阻塞集合:这种集合也包括添加和删除数据的操作。如果操作不能立即进行,这个操作将返回null值或抛出异常,但该线程将不会阻塞。

通过本章的指南,你将学习如何使用一些可以用在并发应用程序中的Java集合。这包括:

  • 非阻塞列表,使用ConcurrentLinkedDeque类。
  • 阻塞列表,使用LinkedBlockingDeque类。
  • 用在生产者与消费者数据的阻塞列表,使用LinkedTransferQueue类。
  • 使用优先级排序元素的阻塞列表,使用PriorityBlockingQueue类。
  • 存储延迟元素的阻塞列表,使用DelayQueue类。
  • 非阻塞可导航的map,使用ConcurrentSkipListMap类。
  • 随机数,使用ThreadLocalRandom类
  • 原子变量,使用AtomicLong和AtomicIntegerArray类
  • 文章转自 

转载地址:http://utmra.baihongyu.com/

你可能感兴趣的文章
Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
查看>>
技术研发国产化进程加快 看传感器企业如何展示十八般武艺
查看>>
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>
新手指南:在 Ubuntu 和 Fedora 上安装软件包
查看>>
在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
查看>>
《动手搭建智能家居系统》——1.2 安全管理和居家护理自动化
查看>>
《Python高性能编程》——2.2 Julia集合的介绍
查看>>
大型网站的 HTTPS 实践(二):HTTPS 对性能的影响
查看>>
《Swift 权威指南》——第6章,第6.10节嵌套函数
查看>>
《自己动手做交互系统》——1.3 本章小结
查看>>
Mobile devices bundled with malware?
查看>>
《Node应用程序构建——使用MongoDB和Backbone》一导读
查看>>
《JavaScript面向对象精要》——1.5 访问属性
查看>>
《Python数据可视化编程实战》—— 第 1 章 准备工作环境
查看>>
Android应用性能优化最佳实践.1.1 Android Studio的优势
查看>>
《设计模式解析(第2版•修订版)》—第2章 2.2节什么是UML
查看>>
【健康医疗】4步完成数据分析报表,让医疗数据转化为生产力
查看>>
【直播】APP全量混淆和瘦身技术揭秘
查看>>
10个大坑,当你产品上架AppStore会遇到
查看>>