美文网首页
阅读concurrentHashmap的counter有感

阅读concurrentHashmap的counter有感

作者: happyleijun | 来源:发表于2018-09-06 01:23 被阅读0次

    JDK1.7 和 JDK1.8 对 size 的计算是不一样的。 1.7 中是先不加锁计算三次,如果三次结果不一样再加锁(锁住该段的修改行为)。

    JDK1.8 size 是通过对 baseCount 和 counterCell 进行 CAS 计算,最终通过 baseCount 和 遍历 CounterCell 数组得出 size。baseCount对每一个segment的修改操作做计数,并CAS到countercell中,一旦失败归入countercell,如果失败不断重试,统计就是base

    JDK 8 推荐使用mappingCount 方法,因为这个方法的返回值是 long 类型,不会因为 size 方法是 int 类型限制最大值。

    相关文章

      网友评论

          本文标题:阅读concurrentHashmap的counter有感

          本文链接:https://www.haomeiwen.com/subject/emhtgftx.html