CAS
什刹海喝旺仔
基础不牢,地动山摇
展开
-
自旋锁
1.自旋锁定义: 实际就是while/do...while+CAS 尝试获取锁的线程不会立即阻塞,而是采用循环的方法尝试获取锁 这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU 2.代码描述: public class SpinLockDemo { AtomicReference<Thread> atomicReference=new AtomicRefer...原创 2019-10-15 12:02:57 · 845 阅读 · 0 评论 -
ABA问题
引出ABA问题? CAS算法实现的一个重要前提就是需要取出内存中某时刻的数据并在当下时刻比较并替换,那么在这个时间差内可能会导致数据的变化,尽管线程CAS操作成功,但并不代表整个过程就是没有问题的 只在乎开头和结尾,不重过程 演示ABA问题? public class ABADemo { //ABA问题解决 //普通原子引用 static AtomicReference&l...原创 2019-10-15 10:47:04 · 266 阅读 · 0 评论