摘要: 什么是CAS ​ CAS是compare-And-Swap的缩写,意思是比较并交换**。它是一条cpu并发原语。它的功能是判断内存某个位置的值是否为预期值。如果是则更改为新的值。这个过程是原子的。**因为原语的执行必须是连续的,在执行过程中不允许被中断。也就是说CAS是一条cpu的原子指令。不会造成 阅读全文
posted @ 2021-06-10 20:26 gaowei656 阅读(84) 评论(0) 推荐(0)
摘要: ABA问题的产生 ​ CAS算法实现的核心是需要取出内存中某个时刻的数据并在当下时刻比较并替换。那么在这个时间差类会导致数据的变化。比如一个线程one从内存位置v取值a,这时候另一个线程two也从内存中取出a,并且线程two进行了一些操作将值变成了b。然后two又将v位置的数据变成了a。这时候线程o 阅读全文
posted @ 2021-06-10 20:22 gaowei656 阅读(122) 评论(0) 推荐(0)
摘要: 问题 (1)synchronized的特性? (2)synchronized的实现原理? (3)synchronized是否可重入? (4)synchronized是否是公平锁? (5)synchronized的优化? (6)synchronized的五种使用方式? synchronized的实现原 阅读全文
posted @ 2021-06-10 19:35 gaowei656 阅读(55) 评论(0) 推荐(0)
摘要: synchronized的五种使用方式 public class SynchronizedTest { public static final Object lock = new Object(); // 锁的是SynchronizedTest.class对象 public static synch 阅读全文
posted @ 2021-06-10 19:34 gaowei656 阅读(50) 评论(0) 推荐(0)