atomiclong

atomiclong 可以理解是加了synchronized的long。

了解JVM指令的,都知道如果赋值一个long变量,编译后,会产生多个JVM语言指令,如果处于多线程情况下对于这个变量进行加减操作会导致数据不一致。

 为避免此问题, Java 引入了原子变量 AtomicLong 。当一个线程正在操作一个原子变量时,即使其他线程也想要操作这个变量,类的实现中含有一个检查那步骤操作是否完成的机制。 基本上,操作获取变量的值,改变本地变量值,然后尝试以新值代替旧值。如果旧值还是一样,那么就改变它。如果不一样,方法再次开始操作。这个操作称为  Compare and Set (校对注:简称 CAS ,比较并交换的意思)。

猜你喜欢

转载自blog.csdn.net/qq_38384102/article/details/83546984
今日推荐