Is iinc atomic in Java?

后端 未结 6 1025
情话喂你
情话喂你 2020-12-30 12:30

I know increment operation is not atomic in C++ without locking.

Will JVM add any lock on its implementation of iinc instruction?

6条回答
  •  既然无缘
    2020-12-30 13:15

    i++ is not atomic in java.
    It is better to use

    AtomicInteger atomic= new AtomicInteger(1);
    

    There are methods defined like

    atomic.getAndDecrement();
    atomic.getAndIncrement();
    atomic.decrementAndGet();
    atomic.incrementAndGet();
    

    any operation with above method would be atomic.

    This class comes under java.util.concurrent.atomic package. Java 1.5 has added many features for thready safety and thread concurrency.

提交回复
热议问题