一、AtomicLong介绍
AtomicLong是作用是对长整形进行原子操作
二、为什么是AtomicLong而不是Long
atomiclong 可以理解是加了synchronized的long
在多线程开发中普通的Long非原子性操作会出现安全问题
如果赋值一个long变量,编译后,会产生多个JVM语言指令,所以不具有原子性。
当一个线程正在操作一个原子变量时,即使其他线程也想要操作这个变量,类的实现中含有一个检查那步骤操作是否完成的机制。 基本上,操作获取变量的值,改变本地变量值,然后尝试以新值代替旧值。如果旧值还是一样,那么就改变它。如果不一样,方法再次开始操作。这个操作称为 Compare and Set (校对注:简称 CAS ,比较并交换的意思)。