解答
get方法是弱一致的,是什么含义?
可能你期望往ConcurrentHashMap底层数据结构中加入一个元素后,立马能对get可见,但ConcurrentHashMap并不能如你所愿。
换句话说,put操作将一个元素加入到底层数据结构后,get可能在某段时间内还看不到这个元素,若不考虑内存模型,单从代码逻辑上来看,却是应该可以看得到的。
put方法我们只需关注Segment#put,get方法只需关注Segment#get。
在继续之前,先要说明一下Segment里有两个volatile变量:
count和table;
HashEntry里有一个volatile变量:value。
帖子还没人回复快来抢沙发