Java中的原子变量

是的,从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();
   }
}