经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
Java并发编程之原子操作解读 - sun-sailing
来源:cnblogs  作者:sun-sailing  时间:2018/10/25 9:37:03  对本文有异议

未完待续,预计10.28完成

 

jdk:1.8.0_65

1 前言

  首先需要了解什么是原子性,原子性只有两种状态,要么改变,要么不改变。非原子操作都会出现线程安全问题。

  那么如何实现一个原子操作,可以有三种方式:

  第一种:使用同步技术,sychronized代码块。

  第二种:lock接口。

  第三种:原子数据结构,如AtomicBoolean、AtomicInteger、AtomicLong等。

  以下是针对原子数据结构进行解读。

2.原子数据结构

  1. package java.util.concurrent.atomic

2.1 原子更新基本类型

  AtomicBoolean:更新的 boolean 值。

  AtomicInteger:更新的 int 值。

  AtomicLong:更新的 long 值。

2.2 原子更新数组

  AtomicIntegerArray:更新其元素的 int 数组。

  AtomicLongArray:更新其元素的 long 数组。

2.3 原子更新引用类型

  AtomicReference:更新的对象引用。

  AtomicMarkableReference:维护带有标记位的对象引用,可以原子方式对其进行更新。

  AtomicReferenceArray:元素的对象引用数组。

  AtomicStampedReference:维护带有整数“标志”的对象引用,可以用原子方式对其进行更新。

2.4 基于反射的实用工具类

  AtomicIntegerFieldUpdater:可以对指定类的指定 volatile int 字段进行原子更新。

  AtomicLongFieldUpdater:可以对指定类的指定 volatile long 字段进行原子更新。

  AtomicReferenceFieldUpdater:可以对指定类的指定 volatile 字段进行原子更新。

3.原子数据结构应用示例

 

4.扩展

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号