源码
OverrideRe
即将毕业的菜鸟java开发
展开
-
AQS源码阅读
前言 AbstractQueuedSynchronizer(AQS)类其实就是一个普通的工具类,用来控制资源并发访问的工具类,它只关心资源可以被谁获取被谁拥有,以及如何处置无法获取资源的对象,至于是如何获取和释放,则由子类来实现。在java.util.concurrent包中有很多类都实现了AQS,常用的有ReentrantLock、ReentrantReadWriteLock、CountDown...原创 2019-04-13 10:57:56 · 227 阅读 · 0 评论 -
jdk1.8 ConcurrentHashMap源码阅读
put方法 如果没初始化则先初始化数组 如果数组对应位置上为null,则表示当前参数是数组该位置上的第一个节点,直接调用cas进行插入 如果数组对应位置上的节点hash值为MOVED,则表示正在进行扩容操作,调用helpTransfer方法帮助一起扩容 以上都不是则加锁进行节点的增加/更新操作 如果头节点的hash值 >= 0,则表示是链表,循环遍历链表进行增加或删除操作,并累加binC...原创 2019-04-04 17:20:52 · 200 阅读 · 0 评论