美文网首页
在ConcurrentHashMap中为什么不使用原子变量存储s

在ConcurrentHashMap中为什么不使用原子变量存储s

作者: 王李荣 | 来源:发表于2018-09-13 12:50 被阅读0次

    ConcurrentHashMap的size方法是弱一致性的,size大小可以认为是数量的一个估计。那为什么不使用原子变量保证强一致性呢?有以下两点原因:

    1. 并发场景下不应该依赖元素数量。因为即使是在调用size()的时候返回了准确元素数量,但是在你使用size的时候,元素数量就可能发生变化了。
    2. 使用原子变量会降低容器效率。虽然使用原子变量的效率低于synchrize,但仍然是一种锁机制,在高并发场景下有激烈的竞争,会影响到容器更新的效率。

    最后,如果程序中需要依靠准确的数量,那可以封装一个currentHashMap,在外部控制数量和进行相关的判断。

    相关文章

      网友评论

          本文标题:在ConcurrentHashMap中为什么不使用原子变量存储s

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