比较并交换
1 | /** |
CAS底层原理?谈谈你对unsafe的理解
atomicInteger.getAndIncrement();
Unsafe
CAS是什么
unsafe.getAndAddInt
底层汇编
小总结
CAS(CompareAndSwap)
比较当前工作内存中的值和主内存中的值,如果相同则执行规定操作,
CAS应用
CAS有3个操作数,内存值V,旧的预期值A,要修改的更新值B。
当且仅当预期值A和内存值V相同时,将内存V修改为B,否则什么都不做。
CAS缺点
- 循环时间长,开销很大
- 只能保证一个共享变量的原子操作
- 引出来ABA问题???