ConcurrentHashMap的size()、mappingCount()的区别,如何扩容?
1.ConcurrentHashMap是线程安全的,size()和mappingCount()有什么区别呢?
经查源码,可看到
经比较分析得出:二者返回值不同,为什么会这样?查看英文注释得知,高并发下,如果同时存在insert、remove时,可能会出现不一致,所以推荐使用mappingCount()。
int的范围是 -2^31——2 ^31-1
long的范围是 -2^63——2 ^63-1
2.它在高并发下是怎么保证扩容的?
它的扩容方法是transfer()
代码非常酷,令人赞叹!该方法的执
原创
2020-08-29 21:23:03 ·
744 阅读 ·
0 评论