Atomic是一个int类型的封装类,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS技术。
CAS即Compare And Swap,利用CPU的CAS指令对数据进行修改,如果经过比较发现内存中的值和期望的值一样,代表在上次读取之后这个数据没有被其他线程修改过,所以可以安全的修改为目标值。
Java中的CAS操作依赖的是Unsafe类提供的底层能力。CAS操作是Java中无锁(lock free)的基础。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2874