51,390
社区成员




最近在学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; }
来个大佬解答一下吧求求了,困惑好久了