3、原子操作 CAS
Atom(不可分割)
什么是原子操作?如何实现原子操作?
syn 基于阻塞的锁的机制,1、被阻塞的线程优先级很高,2、拿到锁的线程一直不释放锁怎
么办?3、大量的竞争,消耗 cpu,同时带来死锁或者其他安全。
CAS 的原理
CAS(Compare And Swap),指令级别保证这是一个原子操作
三个运算符: 一个内存地址 V,一个期望的值 A,一个新值 B
基本思路:如果地址 V 上的值和期望的值 A 相等,就给地址 V 赋给新值 B,如果不是,不做
任何操作。
循环(死循环,自旋)里不断的进行 CAS 操作
CAS 的问题
A---》B----》A,版本号: A1B2-A3
CAS 操作长期不成功,cpu 不断的循环,
Jdk 中相关原子操作类的使用
AtomicMarkableReference,boolean 有没有动过
AtomicStampedReference 动过几次
评论0
最新资源