我想编写一个线程安全的方法sum(),但不确定是否可以使用两个AtomicIntegers使其安全,还是必须使用同步块?

class A {

   private AtomicInteger a = new AtomicInteger();
   private AtomicInteger b = new AtomicInteger();

   public void sum(int c) {
      a.set(a.get() + b.get() + c);
   }
}

最佳答案

有AntomicInteger的特定方法可以解决此问题。您不需要打破AtomicInteger这个词,它是线程安全的。
只需检查AtomicInteger的JavaDocs,就会显示诸如AtomicInteger.getAndAdd之类的可用于此目的的方法。

关于java - 是否可以使用带有两个AtomicInteger的线程安全方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59021003/

10-15 04:03