java中的原子类

来源:互联网 发布:opencv调用tensorflow 编辑:程序博客网 时间:2024/06/04 17:49

  •    原子是世界上的最小单位,具有不可分割性。比如 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 域的原子操作
  • 0 0
    原创粉丝点击