java中的原子类

  •    原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。
  •    java的concurrent包下提供了一些原子类,我们可以通过阅读API来了解这些原子类的用法。比如:AtomicInteger、AtomicLong、AtomicReference等。
  •   

      除了在i++操作时使用synchroinzed关键字实现同步外,还可以使用AtomicInteger原子类进行实现


    java.util.concurrent.atomic 包中提供了以下原子类, 它们是线程安全的类

  • AtomicBoolean -- 原子布尔
  • AtomicInteger -- 原子整型
  • AtomicIntegerArray -- 原子整型数组
  • AtomicLong -- 原子长整型
  • AtomicLongArray -- 原子长整型数组
  • AtomicReference -- 原子引用
  • AtomicReferenceArray -- 原子引用数组
  • AtomicMarkableReference -- 原子标记引用
  • AtomicStampedReference -- 原子戳记引用
  • AtomicIntegerFieldUpdater -- 用来包裹对整形 volatile 域的原子操作
  • AtomicLongFieldUpdater -- 用来包裹对长整型 volatile 域的原子操作
  • AtomicReferenceFieldUpdater -- 用来包裹对对象 volatile 域的原子操作

  • AtomicBoolean -- 原子布尔
  • AtomicInteger -- 原子整型
  • AtomicIntegerArray -- 原子整型数组
  • AtomicLong -- 原子长整型
  • AtomicLongArray -- 原子长整型数组
  • AtomicReference -- 原子引用
  • AtomicReferenceArray -- 原子引用数组
  • AtomicMarkableReference -- 原子标记引用
  • AtomicStampedReference -- 原子戳记引用
  • AtomicIntegerFieldUpdater -- 用来包裹对整形 volatile 域的原子操作
  • AtomicLongFieldUpdater -- 用来包裹对长整型 volatile 域的原子操作
  • AtomicReferenceFieldUpdater -- 用来包裹对对象 volatile 域的原子操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值