CAS: 全称Compare and swap,字面意思:”比较并交换“,一个 CAS 涉及到以下操作:把内存中的某个值和CPU寄存器A中的值,进行比较,如果两个值相同,就把另一个寄存器B中的值个内存的值进行交换...,也就是把内存的值放到寄存器B,同时把寄存器B的值写给内存。...实际上是安全的,因为上述 操作都是硬件上提供的原子性的指令完成的。...而线程t1中的CAS的期望啥num的值不变就修改,但是num被t2线程修改了,只不过又改回来了,此时t1是无法判断当前的这个变量始终是A,还是经历了一个变化的过程,那么是否要更新num的值为Z呢。....");
//获取A的值
String prev = ref.getReference();
//获取版本号
int stamp = ref.getStamp