美文网首页
ConcurrentHashMap解析

ConcurrentHashMap解析

作者: XX杰 | 来源:发表于2020-09-11 17:02 被阅读0次

1、类比 HashMap

a、put的时候,他的hashcode方法优化了
b、初始化 table 的时候做了改变
c、tabAt(table,index) 如果是null 则调用native方法,个人觉得可以理解为创建
d、(fh = f.hash) == MOVED  这个状态不是很懂
e、往链表或者树里面添加数据  
  前提: 在Java中,synchronized关键字是用来控制线程同步的,
              就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行
              synchronized(this)是对象锁,如果有多个对象就有相对应的多个锁。(修饰一个代码块)
              synchronized(类的名.class)是全局锁,不管有几个对象就公用一把锁。(修饰一个类)
      用synchronized 来修饰链表对象 ,进入之后,判断是树还是链表,执行添加操作
f、链表的数量大于8(初始值),就变成树。

扩容 transfer() 方法   生成一个 原来 2倍的数组

相关文章

网友评论

      本文标题:ConcurrentHashMap解析

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