是的,从Java 8开始,java.util.concurrent.atomic包包含一些类,这些类支持对单个变量进行原子操作,以防止出现竞争状况或不面临同步问题。原子包中的所有类都具有get / set方法。每个set方法都具有一个事前发生的关系,并且get()对同一变量进行任何后续方法调用。
import java.util.concurrent.atomic.AtomicInteger;
class AtomicCounter {
private AtomicInteger counter = new AtomicInteger(0);
public void increment() {
counter.incrementAndGet();
}
public void decrement() {
counter.decrementAndGet();
}
public int value() {
return counter.get();
}
}