Atomic 原子类总结

  • Atomic 原子类介绍
  • 基本类型原子类
    • 基本类型原子类介绍
    • AtomicInteger 常见方法使用
    • 基本数据类型原子类的优势
    • AtomicInteger 线程安全原理简单分析
  • 数组类型原子类
    • 数组类型原子类介绍
    • AtomicIntegerArray 常见方法使用
  • 引用类型原子类
    • 引用类型原子类介绍
    • AtomicReference 类使用示例
    • AtomicStampedReference 类使用示例
    • AtomicMarkableReference 类使用示例
  • 对象的属性修改类型原子类
    • 对象的属性修改类型原子类介绍
    • AtomicIntegerFieldUpdater 类使用示例
  • Reference

Atomic 原子类介绍

Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。

所以,所谓原子类说简单点就是具有原子/原子操作特征的类。

并发包 java.util.concurrent 的原子类都存放在java.util.concurrent.atomic下,如下图所示。

根据操作的数据类型,可以将 JUC 包中的原子类分为 4 类

基本类型

使用原子的方式更新基本类型

  • AtomicInteger:整型原子类
  • AtomicLong:长整型原子类
  • AtomicBoolean :布尔型原子类

数组类型

使用原子的方式更新数组里的某个元素

  • AtomicIntegerArray:整型数组原子类
  • AtomicLongArray:长整型数组原子类
  • AtomicReferenceArray :引用类型数组原子类

引用类型

  • AtomicReference:引用类型原子类
  • AtomicMarkableReference:原子更新带有标记的引用类型。该类将 boolean 标记与引用关联起来,也可以解决使用 CAS 进行原子更新时可能出现的 ABA 问题。
  • AtomicStampedReference :原子更新带有版本号的引用类型。该类将整数值与引用关联起来,可用于解决原子的更新数据和数据的版本号,可以解决使用 CAS 进行原子更新时可能出现的 ABA 问题。

对象的属性修改类型

  • AtomicIntegerFieldUpdater:原子更新整型字段的更新器
  • AtomicLongFieldUpdater:原子更新长整型字段的更新器
  • AtomicReferenceFieldUpdater:原子更新引用类型里的字段

Atomic 原子类总结相关推荐

  1. atomic原子类实现机制_JUC学习笔记--Atomic原子类

    Atomic 原子操作类包 Atomic包 主要是在多线程环境下,无锁的进行原子操作.核心操作是基于UnSafe类实现的CAS方法 CAS CAS: compareAndSwap :传入两个值:期望值 ...

  2. Atomic原子类常用方法总结(包含四大类型)

    基本介绍: Atomic指一个操作不可中断,即使在多线程情况下,一个操作一旦开始,就不会被其他线程干扰.如果多线程中仅需要Atomic原子类解决的事情,就不需要synchronized重量级锁了. 原 ...

  3. JUC多线程:Atomic原子类与CAS原理

    一.Atomic 原子类的原理: Atomic 原子操作类是基于无锁 CAS + volatile 实现的,并且类中的所有方法都使用 final 修饰,进一步保证线程安全.而 CAS 算法的具体实现方 ...

  4. atomic原子类实现机制_深入了解Java atomic原子类的使用方法和原理

    在讲atomic原子类之前先看一个小例子: public class UseAtomic { public static void main(String[] args) { AtomicIntege ...

  5. atomic原子类实现机制_并发编程:并发操作原子类Atomic以及CAS的ABA问题

    本文基于JDK1.8 Atomic原子类 原子类是具有原子操作特征的类. 原子类存在于java.util.concurrent.atmic包下. 根据操作的数据类型,原子类可以分为以下几类. 基本类型 ...

  6. (转)Java atomic原子类的使用方法和原理(一)

    在讲atomic原子类之前先看一个小例子: public class UseAtomic { public static void main(String[] args) { AtomicIntege ...

  7. Atomic原子类和Unsafe魔法类 详解

    文章目录 1. Atomic原子类 1.1 Atomic原子类的作用 1.2 原子更新基本类型类 1.3 原子更新数组类 1.4 原子更新引用类型 1.5 原子更新字段类 2. Unsafe魔法类 2 ...

  8. ConcurrentProgramming:Atomic 原子类

    ConcurrentProgramming:Atomic 原子类 关键词 方法基于CAS实现+自旋 AtomicInteger -> Unsafe的对象 -> CAS实现+自旋 一.Ato ...

  9. Atomic原子类及原理

    目录 1 前言 2 unsafe类对Atomic原子类的支持 3 AtomicInteger的内部实现 3.1 准备 3.2 读 3.3 写 4 CAS机制 4.1 基本操作数 4.2 例子 4.3 ...

  10. Atomic 原子类

    1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的.在我们这里 Atomic 是指一个操作是不可中断的.即使是 ...

最新文章

  1. 做三年地方网站不如别人打一场麻将
  2. php可以做门禁卡系统吗_PHP研发工程师入门篇:论PHP可以做什么?
  3. 如何让Spring MVC显示自定义的404 Not Found页面
  4. resnet50加入fpn_FPN+SSD同时兼顾速度和精度的检测器(二)
  5. tpcc-mysql percona_tpcc-mysql 对percona5.6进行压力测试
  6. Failed to start LSB: start and stop MariaDB
  7. 拓端tecdat|python在Keras中使用LSTM解决序列问题
  8. 新快报:十年聚焦,巨杉数据库打造中国基础软件的“原创力”
  9. 前端:让我们做一个快乐的切图仔!
  10. 内核驱动隐藏自身【断链】
  11. Android音频AAC硬编码
  12. TAS5760M-Q1 放大器内部时钟误差被锁存问题
  13. .net后台判断服务器(http/https开头)图片是否存在
  14. css字体倾斜角度_css怎么设置倾斜的字体样式?(代码详解)
  15. word文档的数据损坏如何进行修复
  16. 语法分析器(syntax analyzer)【Perl实现】
  17. HTML简单的个人博客网站 DIV学生网页设计作品 dreamweaver作业静态HTML网页设计模板 个人网页作业制作
  18. vs2015 - vs2010
  19. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(12月26日-1月1日)
  20. timepicker时间选择控件 时:分:秒

热门文章

  1. MySQL压缩包方式安装,傻瓜式教学
  2. 通信算法之145:OFDM系统频偏(IFO/FFO)对频域信号影响
  3. python绘制太阳系_使用 Python 来简单的动态模拟一下太阳系的运转
  4. 50种制作图表JS库
  5. Spark中RDD的依赖关系
  6. 论文笔记《MemSeg: A semi-supervised method for image surface defect detection using differences and comm》
  7. Rainbow Brackets使用
  8. 集成灶公认10大品牌有哪些?从这三方面轻松辨别品牌是否靠谱
  9. 最佳线程数 6666 epoll触发量
  10. C语言入门书籍推荐:C语言程序设计:现代方法(第二版-作者K.N.King) APP推荐:微信读书