我想编写一个线程安全的方法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。