栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【并发编程081】说说java中的原子操作类?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【并发编程081】说说java中的原子操作类?

说说java中的原子操作类?

Java从JDK 1.5开始提供了java.util.concurrent.atomic包 (以下简称Atomic包) , 这个包中 的原子操作类提供了一种用法 简单 、 性能高效 、线程安全地更新一个变量的方式 。 因为变量的类型有很多种, 所以在Atomic包里一共提供了13个类, 属于4种类型的原子更 新方式, 分别是原子更新基本类型 、 原子更新数组 、 原子更新引用和原子更新属性 (字段) 。 Atomic包里的类基本都是使用Unsafe实现的包装类。

atomic 提供了 3 个类用于原子更新基本类型: 分别是 AtomicInteger 原子更新整形, AtomicLong 原子更新长整 形, AtomicBoolean 原子更新 bool 值。

atomic 里提供了三个类用于原子更新数组里面的元素, 分别是: AtomicIntegerArray: 原子更新整形数组里的元 素; AtomicLongArray: 原子更新长整形数组里的元素; AtomicReferenceArray: 原子更新引用数组里的元素。

原子更新基本类型的 AtomicInteger 只能更新一个变量, 如果要原子更新多个变量, 就需要使用原子更新引用类 型提供的类了 。原子引用类型 atomic 包主要提供了以下几个类: AtomicReference: 原子更新引用类型 ; AtomicReferenceFieldUpdater: 原子更新引用类型里的字段; AtomicMarkableReference: 原子更新带有标记位的引用 类型 。 可以原子更新一个布尔类型的标记位和引用类型 。构造方法是 AtomicMarkableReference (V initialRef , booleaninitialMark) 。

如果需要原子更新某个对象的某个字段, 就需要使用原子更新属性的相关类, atomic 中提供了一下几个类用于原 子更新属性: AtomicIntegerFieldUpdater: 原子更新整形属性的更新器; AtomicLongFieldUpdater: 原子更新长整形的 更新器; AtomicStampedReference: 原子更新带有版本号的引用类型 。该类将整数值与引用关联起来, 可用于原子的更 新数据和数据的版本号, 可以解决使用 CAS 进行原子更新时可能出现的 ABA 问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/839378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号