您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        AtomicLong 是 Java 并发包 java.util.concurrent.atomic 中的一个类,它提供了一种基于单个变量的原子操作。以下是 AtomicLong 提供的一些主要原子操作方法:
get(): 获取当前值。set(long newValue): 设置新值。lazySet(long newValue): 异步设置新值,不保证立即可见性。compareAndSet(long expect, long update): 如果当前值等于预期值,则以原子方式将值设置为更新值。weakCompareAndSet(long expect, long update): 类似于 compareAndSet,但使用了更弱的内存语义。getAndIncrement(): 原子地将当前值加一,并返回旧值。getAndDecrement(): 原子地将当前值减一,并返回旧值。getAndAdd(long delta): 原子地将当前值加上一个增量,并返回旧值。incrementAndGet(): 原子地将当前值加一,并返回新值。decrementAndGet(): 原子地将当前值减一,并返回新值。addAndGet(long delta): 原子地将当前值加上一个增量,并返回新值。getAndUpdate(LongUnaryOperator updateFunction): 使用提供的函数原子地更新当前值,并返回更新前的值。updateAndGet(LongUnaryOperator updateFunction): 使用提供的函数原子地更新当前值,并返回更新后的值。accumulateAndGet(long x, LongBinaryOperator accumulatorFunction): 使用提供的二元操作符原子地将当前值与给定值进行累积运算,并返回结果。getAndAccumulate(long x, LongBinaryOperator accumulatorFunction): 使用提供的二元操作符原子地将当前值与给定值进行累积运算,并返回更新前的值。toString(): 返回当前值的字符串表示。hashCode(): 返回对象的哈希码。equals(Object obj): 判断两个对象是否相等。import java.util.concurrent.atomic.AtomicLong;
public class AtomicLongExample {
    public static void main(String[] args) {
        AtomicLong atomicLong = new AtomicLong(0);
        // 原子地增加值
        long newValue = atomicLong.incrementAndGet();
        System.out.println("Incremented value: " + newValue); // 输出: Incremented value: 1
        // 原子地减少值
        newValue = atomicLong.decrementAndGet();
        System.out.println("Decremented value: " + newValue); // 输出: Decremented value: 0
        // 使用 compareAndSet
        boolean updated = atomicLong.compareAndSet(0, 10);
        System.out.println("Updated: " + updated); // 输出: Updated: true
        System.out.println("Current value: " + atomicLong.get()); // 输出: Current value: 10
    }
}
这些方法确保了在多线程环境下对 AtomicLong 实例的操作是线程安全的,无需额外的同步机制。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。