Java并发包
Coding_Master_
这个作者很懒,什么都没留下…
展开
-
源码分析AbstractQuenedSynchronized(一)
AbstractQuenedSynchronized 该类是一个抽象类,简称AQS,是Java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。 数据结构 双向队列,结点Node包含:pre+next+thread+waitStatus static final class Node { ...原创 2019-05-26 18:49:08 · 343 阅读 · 0 评论 -
源码分析AbstractQuenedSynchronized(二)
上一篇:源码分析AbstractQuenedSynchronized(一) 公平锁和非公平锁 公平锁的争锁过程 static final class FairSync extends Sync { //争锁 final void lock() { acquire(1); } /*========调用父类AQS的acqu...原创 2019-06-15 22:30:52 · 123 阅读 · 0 评论 -
源码分析AbstractQuenedSynchronized(三)
第一篇:源码分析AbstractQuenedSynchronized(一) 第二篇:源码分析AbstractQuenedSynchronized(二) 文章目录CountDownLatch数据结构模板方法ReentrantLockReentrantLock获得公平锁ReentrantLock释放公平锁公平锁和非公平锁公平锁的争锁过程非公平锁的争锁过程总结 结合AQS分析JDK并发包中的几个非常有...原创 2019-06-23 13:32:53 · 165 阅读 · 0 评论 -
源码分析BlockingQueue实现(jdk1.8)
BlockingQueue BlockingQueue常常运用于线程池的阻塞队列中,顾名思义,它能够作为一个具有阻塞作用的先进先出队列。 BlockingQueue 对插入操作、移除操作、获取元素操作提供了四种不同的方法用于不同的场景中使用:1、抛出异常;2、返回特殊值(null 或 true/false,取决于具体的操作);3、阻塞等待此操作,直到这个操作成功;4、阻塞等待此操作,直到成功或者超...原创 2019-07-30 10:04:35 · 208 阅读 · 0 评论 -
源码分析ConcurrentHashMap(jdk1.7 和jdk1.8)
JDK1.7 ConcurrentHashMap 图示结构 图片来源于https://www.javadoop.com/post/hashmap] 初始化 ConcurrentHashMap的初始化是个懒加载的过程:实例化ConcurrentHashMap时只新建了Segment数组并初始化了s[0],真正对Segment其他位置的初始化要等到put操作才执行 @SuppressWarni...原创 2019-07-27 16:01:29 · 461 阅读 · 0 评论