根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。
1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;
2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;
3. 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableReference ;
4. 对象的属性修改类型: AtomicIntegerFieldUpdater, AtomicLongFieldUpdater, AtomicReferenceFieldUpdater 。
最常使用的应该是 AtomicInteger, AtomicLong, AtomicBoolean以及AtomicReference
这些类存在的目的是对相应的数据进行原子操作。所谓原子操作,是指操作过程不会被中断,保证数据操作是以原子方式进行的。不可终端的一个或者一系列的操作
[b]CAS操作:[/b]compare and Swap 就是比较交换的有,需要两个参数,一个是旧值【操作前的值】一个是新值,处理期间先比较旧的值有没有发生变化,如果没有发生变化,才交换成新的值,发生了变化则不交换。
1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;
2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;
3. 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableReference ;
4. 对象的属性修改类型: AtomicIntegerFieldUpdater, AtomicLongFieldUpdater, AtomicReferenceFieldUpdater 。
最常使用的应该是 AtomicInteger, AtomicLong, AtomicBoolean以及AtomicReference
这些类存在的目的是对相应的数据进行原子操作。所谓原子操作,是指操作过程不会被中断,保证数据操作是以原子方式进行的。不可终端的一个或者一系列的操作
[b]CAS操作:[/b]compare and Swap 就是比较交换的有,需要两个参数,一个是旧值【操作前的值】一个是新值,处理期间先比较旧的值有没有发生变化,如果没有发生变化,才交换成新的值,发生了变化则不交换。