8分44位置,CAS自旋更新桶的头节点位置可能有误?

来源:10-5 ConcurrentHashMap

抽象汪

2020-01-01

老师的原话是"若CAS添加桶的头节点失败的话则会break",这里口误了吧。应该是成功更新了才会结束自旋才对吧,如果失败就break了那么还如何自旋更新呢?

写回答

3回答

慕哥6062902

2020-08-13

漂亮,还好看到这里,就赶紧来看看问题区,你很秀老铁

1
0

泥巴111

2020-03-23

同感是口误,我觉得:cas向table中添加,失败了说明是其他线程改过了,要重新从for中循环判断。

cas成功说明无其他线程干扰,直接结束本次table添加,效率很高。

0
0

翔仔

2020-01-02

同学好,casTabAt会进行自旋更新,但是始终需要返回终态而不是一直hung住,所以如果casTabAt返回失败则break

0
2
翔仔
回复
海与千巷
晕了,那天可能熬夜太晚,失败了会继续执行for循环,去尝试做CAS,成功则会break:)感谢理解和包涵
2020-03-30
共2条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8442 学习 · 1872 问题

查看课程