美文网首页
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