Java集合 --- ConcurrentHashMap

ConcurrentHashMap

  • 参考资料

  • 参考资料

  • sun.misc.Unsafe

    • objectFieldOffset方法,返回成员属性在内存中的地址相对于对象内存地址的偏移量
  • Unsafe类详解

  • 为什么要用TreeBin来包装TreeNode,因为TreeNode的话,如果加了锁,红黑树的根节点是会变的,所以锁不住,所以变成锁对象.根节点是内部的.

变量说明

  • 这两个变量相当于要算其中的元素个数
  • baseCount
  • CounterCell
  • 每个线程会生成一个随机数,然后和CounterCell的长度减一进行相与,类似于hash,
  • Java集合 --- ConcurrentHashMap_第1张图片
    Java集合 --- ConcurrentHashMap_第2张图片

Java集合 --- ConcurrentHashMap_第3张图片

  • jdk1.8 LongAdder源码学习

  • LongAdder源码学习

  • sizeCtl,初始值为0,初始化时减1,然后是 == 阈值

你可能感兴趣的:(java)