cas
2022-03-23 12:56:09 7 举报
并发 cas
作者其他创作
大纲/内容
线程 B
ABA问题:是如果内存值原来是A,后来变成了B,然后⼜变成了A,ABA问题的解决思路就是在变量前⾯添加版本号,每次变量更新的时候都把版本号加⼀,这样变化过程 就从“A-B-A”变成了“1A-2B-3A”。
写入:预期值A=10修改的新值B=12
读取 V
修改值为 12
内存地址V
A = 10
CAS:预期值A !=10修改的新值B=11
CAS
值变成了:12
CAS操作如果⻓时间不成功,会导致其⼀直⾃旋,给CPU带来⾮常⼤的开销。
修改值为 11
写入:预期值A=10修改的新值B=11
线程 A
成功
值:10
0 条评论
回复 删除
下一页