请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

3回答

慕哥6062902 2020-08-13 16:15:56

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

1 回复 有任何疑惑可以回复我~
泥巴111 2020-03-23 00:06:43

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

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

0 回复 有任何疑惑可以回复我~
翔仔 2020-01-02 01:43:09

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

0 回复 有任何疑惑可以回复我~
  • 失败了才是自旋吧?break了不是就退出自旋了吗
    回复 有任何疑惑可以回复我~ 2020-03-28 22:22:23
  • 翔仔 回复 海与千巷 #2
    晕了,那天可能熬夜太晚,失败了会继续执行for循环,去尝试做CAS,成功则会break:)感谢理解和包涵
    回复 有任何疑惑可以回复我~ 2020-03-30 01:33:26
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号