2021
02-02
02-02
为什么Java volatile++不是原子性的详解
问题在讨论原子性操作时,我们经常会听到一个说法:任意单个volatile变量的读写具有原子性,但是volatile++这种操作除外。所以问题就是:为什么volatile++不是原子性的?答案因为它实际上是三个操作组成的一个符合操作。首先获取volatile变量的值将该变量的值加1将该volatile变量的值写会到对应的主存地址一个很简单的例子:如果两个线程在volatile读阶段都拿到的是a=1,那么后续在线程对应的CPU核心上进行自增当然都得到...
继续阅读 >