AtomicInteger的嵌套方法调用在java中也是原子的吗

AtomicInteger的嵌套方法调用在java中也是原子的吗,java,multithreading,atomicity,java-5,Java,Multithreading,Atomicity,Java 5,这个操作是原子的还是有可能在两者之间发生数据竞争 atomicInteger.set(-atomicInteger.get()); 如果存在数据竞争,如何以原子方式否定一个原子整数?不,我想您需要同步来锁定实例 AtomicInteger有很多方法可以获取和设置,但是没有什么方法可以做 很明显,这是以前问过的,因此该页面上的解决方案很有趣。不,我想您需要同步来锁定实例 public final int getAndDecrement() AtomicInteger有很多方法可以获取和设置,但

这个操作是原子的还是有可能在两者之间发生数据竞争

atomicInteger.set(-atomicInteger.get());

如果存在数据竞争,如何以原子方式否定一个
原子整数?

不,我想您需要同步来锁定实例

AtomicInteger有很多方法可以获取和设置,但是没有什么方法可以做


很明显,这是以前问过的,因此该页面上的解决方案很有趣。

不,我想您需要同步来锁定实例

public final int getAndDecrement()
AtomicInteger有很多方法可以获取和设置,但是没有什么方法可以做

显然,这是以前问过的,因此该页面上的解决方案很有趣

public final int getAndDecrement()
原子地将当前值递减1。返回上一个值

AtomicInteger itsCounter = new AtomicInteger();
itsCounter.getAndDecrement();
原子地将当前值递减1。返回上一个值

AtomicInteger itsCounter = new AtomicInteger();
itsCounter.getAndDecrement();
我会这样做的

public int getAndNegate(AtomicInteger i) {
    for (;;) {
        int current = i.get();
        int next = -current;
        if (i.compareAndSet(current, next))
            return current;
    }
}
我会这样做的

public int getAndNegate(AtomicInteger i) {
    for (;;) {
        int current = i.get();
        int next = -current;
        if (i.compareAndSet(current, next))
            return current;
    }
}

不那不行。见不到;那不行。看到了吗,谢谢,但我实际上是在问关于否定和不减少价值的问题谢谢,但我实际上是在问关于否定和不减少价值的问题