longAccumulate是否会在Cell[]扩容到最大值并且不断发生竞争时回退casBase

YiLaiL 2025-02-14 01:24:38

最近在学JUC学到longAccumulate时有了问题,问了很多AI都说在Cell[]扩容到最大值并且不断发生竞争时会回退casBase,并称这是一种保底机制,但是我在看源码时好像并没有看到哪里能回退casBase,源码处理当Cell[]扩容到最大值并且不断发生竞争问题时似乎只尝试为线程更换cell

index = advanceProbe(index);

AI解释时一直称当Cell[]扩容到最大无法更新时,会调用以下代码,但是我认为当Cell[]被创建好后,应该是不会有机会执行的。

  else if (casBase(v = base,
                     (fn == null) ? v + x : fn.applyAsLong(v, x)))
        break;
}

来个大佬解答一下吧求求了,困惑好久了

...全文
99 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,390

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧