7. Java中的13个原子操作类

2020-02-13  本文已影响0人  星冉子

原子操作

一种用法简单、性能高效、线程安全的更新变量的方式,包括原子更新基本类型、原子更新数组、原子更新引用、原子更新字段,采用Unsafe实现的包装类;

原子更新基本类型

包括AtomicBoolean、AtomicInteger、AtomicLong,方法包括addAndGet、compareAndSet、getAndIncrement、getAndSet;

实现:采用CAS,调用UnSafe包实现,目前Unsafe只提供了3个方法,所以基本类型只有3个,其他实现原理一样;

原子更新数组

包括AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray,方法包括addAndGet、compareAndSet;

创建时采用构造方法传入普通数组,Atomic 会复制一份修改;

原子更新引用

包括AtomicReference、AtomicReferenceFieldUpdater、AtomicMarkableReference;

创建时采用构造方法传入普通对象,再调用原子方法修改;

原子更新字段

包括AtomicIntegerFieldUpdater、AtomicLongFieldUpdater、AtomicStampedReference(更新有版本号的引用,解决CAS的ABA问题);

构造时需要使用构造器指定字段名称,其中字段必须是volatile;

上一篇 下一篇

猜你喜欢

热点阅读