并发集合(一)引言

简介:

声明:本文是《 Java 7 Concurrency Cookbook 》的第六章,作者: 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类
  • 文章转自 并发编程网-ifeve.com
目录
相关文章
|
8月前
|
存储 缓存 安全
【并发编程的艺术】JAVA并发机制的底层原理
Java代码的执行过程:代码编译->Java字节码->类加载器加载到JVM->JVM执行字节码,最终转化为汇编指令在CPU中执行。所以,Java中使用的并发机制,也依赖于JVM的实现和CPU指令。本章将重点描述这两个关键字的实现,并由此深入探索操作系统底层原理。
54 0
|
2月前
|
安全 Java 开发者
Java并发编程中的线程安全性探究
在Java编程中,线程安全性是一个至关重要的问题,涉及到多线程并发访问共享资源时可能出现的数据竞争和不一致性问题。本文将深入探讨Java并发编程中的线程安全性,介绍常见的线程安全性问题以及解决方法,帮助开发者更好地理解和应对在多线程环境下的挑战。
|
8月前
|
存储 缓存 算法
并发编程基础
并发编程基础
|
安全 算法 Java
Java并发编程系列之三JUC概述
上篇文章为解决多线程中出现的同步问题引入了锁的概念,上篇文章介绍的是Synchronized关键字锁,本篇文章介绍更加轻量级的锁Lock接口及引出JUC的相关知识。
Java并发编程系列之三JUC概述
|
安全 Java
Java并发编程 - 线程安全性之简介
Java并发编程 - 线程安全性之简介
78 0
Java并发编程 - 线程安全性之简介
|
存储 Java
《重学Java高并发》之“摸底考试”:你会使用多线程实现生产者-消费者协作模型吗? 原创
《重学Java高并发》之“摸底考试”:你会使用多线程实现生产者-消费者协作模型吗? 原创
《重学Java高并发》之“摸底考试”:你会使用多线程实现生产者-消费者协作模型吗? 原创
|
Java
Java并发编程 - 简介
Java并发编程 - 简介
49 0
Java并发编程 - 简介
|
存储 SQL 缓存
史上最全的Java并发系列之Java并发机制的底层实现原理
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
101 0
|
存储 缓存 Java
Java并发编程基础盘点(一)
Java并发编程基础盘点(一)
84 0
Java并发编程基础盘点(一)