Java中13个原子操作类、Unsafe类
2018-01-11 16:13
621 查看
原子更新基本类型
AtomicBoolean、AtomicInteger、AtomicLongUnsafe.java中只提供了3种CAS:compareAndSwapObject、compareAndSwapInt、compareAndSwapLong,而AtomicBoolean是把Boolean转成整型,再更新。
原子更新数组
AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray构造方法传进AtomicIntegerArray的数组,会被复制一份,对其修改,不会影响原来的数组。
原子更新引用
AtomicReference、AtomicReferenceFieldUpdater引用里的字段、AtomicMarkableReference带有布尔类型标记位的引用类型原子更新属性/字段
AtomicIntegerFieldUpdater、AtomicLongFieldUpdater、AtomicStampedReference带版本号的,可以解决CAS的ABA问题。AtomicInteger源码
以 incrementAndGet 方法为例,比较JDK1.7和JDK1.8。Unsafe类
封装了一些不安全的操作,即一些类似指针的操作。如果指针指错了位置,或者计算指针偏移量时出错,可能会覆盖别人的内存,导致系统崩溃。JDK1.8中获得unsafe实例的代码,如果不是系统的类加载器加载的就抛出异常。所以这个类仅供JDK内部使用,应用程序无法使用。
相关文章推荐
- Java中的13个原子操作类
- 《Java并发编程的艺术》第七章——Java中的13个原子操作类
- Java并发编程艺术 7 Java的13个原子操作类
- Java中13个原子操作类
- 第七章 Java中的13个原子操作类(atomic包)
- 【Java多线程与并发库】07 Java中的13个原子操作类
- Java中的13个原子操作类(六)
- java并发编程:线程安全管理类--原子操作类--AtomicLong
- java并发编程:线程安全管理类--原子操作类--AtomicReferenceFieldUpdater<T,V>
- java.util.concurrent.atomic原子操作类包
- 08_张孝祥_多线程_java5原子性操作类的应用
- Java 原子操作类详解(AtomicInteger、AtomicIntegerArray等)
- java.util.concurrent.atomic原子操作类包
- Java 13个原子操作
- java并发之原子操作类和非阻塞算法
- Java原子操作类汇总
- java原子操作类-原子数组类
- java并发编程的艺术第七章——java中的13个原子操作
- java5原子性操作类的应用(八)
- Java中的原子操作类