08 2018 档案

java源码-ConcurrentHashMap分析-1
摘要:ConcurrentHashMap源码分析 版本jdk8 摈弃了jdk7之前的segement段锁: 首先分析一下put方法,大致的流程就是首先对key取hash函数 判断是否first节点是否存在 不存在则 cas更新,存在 判断是否是forward节点,如果是则帮助扩容,否则锁住first节点 阅读全文

posted @ 2018-08-29 10:37 coding途中 阅读(135) 评论(0) 推荐(0) 编辑

java源码-HashMap源码分析
摘要:这次开始分析JDK8中的HashMap源码。 首先理解HashMap中几个关键变量, TREEIFY_THRESHOLD 链表转换红黑树扩容值 table 数组+链表+红黑树 size 当前存储数量 loadFactor加载因子 threshold 扩容值等于table长度*loadFactor。 阅读全文

posted @ 2018-08-24 10:21 coding途中 阅读(189) 评论(0) 推荐(0) 编辑

java源码-Semaphore源码分析
摘要:再看下是如何唤醒CLH阻塞队列的,首先调用relase(1)再调用relaseShared(1)方法,tryRelaseShared(1)方法将state+relases通过cas设置成功然后返回true,开始唤醒等待队列,doRelaseShared()方法在CountDownLatch分析过 传 阅读全文

posted @ 2018-08-23 10:44 coding途中 阅读(204) 评论(0) 推荐(0) 编辑

java源码-CountDownLatch源码分析
摘要:这次分析CountDownLatch,相信大部分人都用过把! CountDownLatch内部还是Sync对象,还是基础AQS(可见其重要性),首先看一下CountDownLatch初始化,CountDownLatch初始化一个state状态值, 这个值就是AQS中获取锁得state值,CountD 阅读全文

posted @ 2018-08-18 17:45 coding途中 阅读(123) 评论(0) 推荐(0) 编辑

java源码-ReentrantLock源码分析-2
摘要:继续上篇ReentrantLock分析如何唤醒线程; 当调用lock.unlock()方法最终调用AQS类中的release方法,开始释放锁 tryRelease(1)方法在Sync对象中实现,首先会检查当前占用锁线程是否是释放线程,如果不是则抛出异常,然后再设置state为0,因为独占锁只有一个线 阅读全文

posted @ 2018-08-17 11:33 coding途中 阅读(91) 评论(0) 推荐(0) 编辑

java源码-ReentrantLock源码分析-1
摘要:ReentrantLock 继承于lock是比较常用的独占锁,接下来我们来分析一下ReentrantLock源码以及接口设计: Sync是ReentrantLock的内部静态抽象类继承AbstractQueuedSynchronizer类,ReentrantLock类部还有两个类FairSync(公 阅读全文

posted @ 2018-08-16 22:32 coding途中 阅读(118) 评论(0) 推荐(0) 编辑

java源码-LinkedHashMap类设计
摘要:LinkedHashMap 继承于 hashMap LinkedHashMap .Entry 继承 HashMap.Node 继承 Map.Entry类 LinkedHashMap .Entry 该Entry除了保存当前对象的引用外,还保存了其上一个元素before和下一个元素after的引用,从而 阅读全文

posted @ 2018-08-15 11:33 coding途中 阅读(167) 评论(0) 推荐(0) 编辑

java源码-HashMap类设计
摘要:map(内部interface Entry<K,V>)->abstractMap(定义视图 entrySet抽象方法)->hashMap(静态内部类Node(继承Entry<K,V>)) TreeNode 继承 LinkedHashMap.Entry 继承 HashMap.Node 阅读全文

posted @ 2018-08-15 10:57 coding途中 阅读(139) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示