美文网首页
CAS简化理解

CAS简化理解

作者: dingking | 来源:发表于2020-11-04 10:16 被阅读0次

    CAS 介绍

    Compare and Swap,即比较再交换,其中有内存值V,旧值A,需要置换的值B,当V=A时,就可以把V值交换成B,如果不相等继续尝试。

    举例描述

    其实V就是当前内存里面的值,而旧值A就是在执行更新操作的时候在内存取出来的值,而只有在更新前取出来的值等于V值是才把B值置换过去,如果不相等就说明被别的线程给修改,那么就先取出当前的值作为A,继续进行比较置换。
    比如要修改数据库里面存储某个用户的账户金额信息如:

    id amount version
    1 100 1

    如果充值20,在修改时候先取出数据,这个时候amount=100 version=1,以版本号作为标准则A=1,V=1,B=2,进行修改的时候version=1即A=V,则可以进行修改amount=100+20,version=B=2,如果A!=V那么就继续重新获取version作为A重试。至于是否一直尝试,可以设置超时时间或者尝试次数,失败的后续用定时任务补偿。

    相关文章

      网友评论

          本文标题:CAS简化理解

          本文链接:https://www.haomeiwen.com/subject/uogwvktx.html