CAS自旋锁
此时内存中的m=4 ,程序读取m后做m++操作,此时m变成了5。CAS比较和交换,此时比较期望的旧数据与内存的数据是否相等,相等,交换内存中的数据,将内存中的数据设置为5,如果此时不相等,说明在我执行m++的过程中,内存中的数据被修改过,重新拉取内存中的数据,重复执行CAS自旋。我们看上图的右半部分,在我左边的程序执行m++的过程中,我右边的程序同样在操作内存中的m,首先将m改成3,然后将m改成5,最后再将m改成4,右边操作做完了之后,左边的程序此时CAS比较期望的旧数据与内存中的数据,m都是等于4。
原创
2023-02-09 15:44:01 ·
160 阅读 ·
0 评论