请稍等 ...
×

采纳答案成功!

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

LongAdder

老师关于我上个问题我看了您的回复,我感觉我想问的并不是伪共享相关的问题。而是一个LongAdder类型是将Long型变量分段进行计算最后把每段的计算结果累加得到最终结果。不知道我说的对吗?我想问的是如何保证这些个分好的段可以进行原子性操作,也就是每一小段都不被其他线程影响,保证最后累加计算出来的结果是正确的。我看了源码里面好像有涉及到localthread不知道跟这个有没有关,源码有点没看懂。老师不知道这次我问明白了吗

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

1回答

Jimin 2018-05-04 22:55:29

你好,我猜想你也是没细看我之前给你的链接,为了保证其他人看着方便,我再贴一下链接:https://github.com/aCoder2013/blog/issues/22

这里有这样一段(就在我提到伪共享下面,他会将每个【线程】的操作hash到【不同的 cells数组】中,通过不一样的cas去做更新的,这也是性能比AtomicLong好的根本所在,只要不发生伪共享,就不会有问题):

https://img1.sycdn.imooc.com//szimg/5aec743c0001117a13641280.jpg

这里的源码注释很好,我感觉可以细细研究一下~


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信