您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
Java中的Atomic
类位于java.util.concurrent.atomic
包中,它们提供了一系列原子操作方法,用于在多线程环境下进行无锁的线程安全操作。以下是一些常用的Atomic
类及其方法:
AtomicInteger
get()
: 获取当前值。set(int newValue)
: 设置新值。compareAndSet(int expect, int update)
: 如果当前值等于预期值,则以原子方式将其设置为更新值。getAndIncrement()
: 原子地递增当前值并返回旧值。getAndDecrement()
: 原子地递减当前值并返回旧值。getAndAdd(int delta)
: 原子地将给定值加到当前值并返回旧值。accumulateAndGet(int x, IntBinaryOperator accumulatorFunction)
: 使用给定的累加函数原子地更新当前值并返回旧值。AtomicLong
AtomicInteger
,但操作的是长整型(long)。AtomicBoolean
get()
: 获取当前值。set(boolean newValue)
: 设置新值。compareAndSet(boolean expect, boolean update)
: 如果当前值等于预期值,则以原子方式将其设置为更新值。getAndSet(boolean newValue)
: 原子地设置新值并返回旧值。getAndChange()
: 原子地切换当前值并返回旧值。AtomicReference<V>
get()
: 获取当前引用。set(V newValue)
: 设置新引用。compareAndSet(V expect, V update)
: 如果当前引用等于预期值,则以原子方式将其设置为更新值。getAndSet(V newValue)
: 原子地设置新引用并返回旧引用。weakCompareAndSet(V expect, V update)
: 类似于compareAndSet
,但使用弱一致性模型。AtomicIntegerFieldUpdater
compareAndSet(T obj, int expect, int update)
: 对指定对象的指定字段进行原子比较和设置操作。getAndIncrement(T obj)
: 对指定对象的指定字段进行原子递增操作。getAndDecrement(T obj)
: 对指定对象的指定字段进行原子递减操作。getAndAdd(T obj, int delta)
: 对指定对象的指定字段进行原子加法操作。AtomicLongFieldUpdater
AtomicIntegerFieldUpdater
,但操作的是长整型字段。AtomicReferenceFieldUpdater
AtomicIntegerFieldUpdater
,但操作的是引用类型字段。AtomicStampedReference<V>
compareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
: 使用版本号来避免ABA问题。get(int[] stampHolder)
: 获取当前引用和版本号。AtomicMarkableReference<V>
compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
: 使用标记位来避免ABA问题。get(int[] markHolder)
: 获取当前引用和标记位。这些类和方法提供了高效且线程安全的原子操作,适用于各种并发编程场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。