CAS和ABA 问题

												     	## CAS和ABA 问题
package cn.qqjx.thread.c_018;


/*
 * CAS和ABA 问题
 * @Auther  wangpeng
 * @Date 2021/1/8
 */

public class CASandABA {
    
    

    /*
     * CAS(无锁优化 自旋锁)
     * CAS  Compare And Set
     *
     *  cas(V,Expected,NewValue)
     *   V 要修改的对象 Expected 期待的值 NewValue 新值
     *   if (V==Expected)
     *         V = NewValue
     *   else
     *        try again or fail
     */

    /*
     * ABA 问题
     * 在CAS过程中 值 由 A ----> B -----> A
     * 解决方法 每次修改的时候 加一个版本号 修改一次 版本+1
     * cas(V,Expected,NewValue,version)
     */

}

猜你喜欢

转载自blog.csdn.net/m0_52936310/article/details/112387183