ConcurrentHashMap_jdk1_7__put_method
2021-02-24 22:37:13 0 举报
ConcurrentHashMap jdk1.7 put方法的实现
作者其他创作
大纲/内容
其它线程未持有锁
其它线程已持有锁
通过自旋的方式调用tryLock()
否
第一次hash:根据key的哈希,获取在Segment中的位置,下标记为i
获得锁
执行插入操作
第二次hash:找到在HashEntry中的位置,下标记为j
是
唤醒
put()结束
挂起当前线程,等待唤醒
通过ReentrantLock中的tryLock()方法获取锁
put()开始
调用次数是否超过限制
Segment[i]是否已经初始化
通过CAS,对Segment进行初始化
0 条评论
下一页