java并发编程的艺术第七章——java中的13个原子操作
2017-08-26 00:00
267 查看
当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问题,synchronized会保证多线程不会同时更新变量i。
而Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。
因为变量的类型有很多种,所以在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是:
原子更新基本类型
原子更新数组
原子更新引用类型
原子更新字段类
详情看文档。
而Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。
因为变量的类型有很多种,所以在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是:
原子更新基本类型
原子更新数组
原子更新引用类型
原子更新字段类
详情看文档。
相关文章推荐
- 《Java并发编程的艺术》笔记四——Java如何实现原子操作.md
- 并发编程的艺术第七章-13个原子类介绍
- 《Java并发编程的艺术》第七章——Java中的13个原子操作类
- Java并发编程艺术 7 Java的13个原子操作类
- Java 13个原子操作
- 第七章 Java中的13个原子操作类(atomic包)
- Java i++是原子操作的假象
- 关于Java自增操作的原子性
- java并发编程的艺术笔记第八章——java中的并发工具类
- java 线程 原子类相关操作示例 thinking in java4 目录21.3.4
- java.util.concurrent(JUC)的研究--》atomic原子操作--》happens-before法则
- Java并发中原子操作的实现
- 深入浅出 Java Concurrency (3): 原子操作 part 2
- 2.原子--深入浅出java原子操作
- 【Kevin原创】关于Java自增操作的原子性
- Java 并发编程(三)为线程安全类中添加新的原子操作
- java并发编程的艺术笔记第六章——java并发容器和框架
- Java并发——原子变量和原子操作
- java并发编程学习(三) 原子操作的实现原理及java中如何实现原子操作
- java并发编程的艺术,入门java并发编程要学习的