随笔分类 - 并发专题
摘要:ReentrantLock类锁分析详解
阅读全文
摘要:Copy-on-Write模式容器集合的分析
阅读全文
摘要:阻塞队列详解之对SynchronousQueue分析
阅读全文
摘要:阻塞队列详解之对PriorityBlockingQueue分析
阅读全文
摘要:阻塞队列详解之对DelayQueue分析
阅读全文
摘要:阻塞队列宏观剖析,具体的针对原生的阻塞队列采用新开篇章进行源码分析
阅读全文
摘要:阻塞队列详解之对LinkedBlockingDeque分析
阅读全文
摘要:阻塞队列详解之对LinkedBlockingQueue分析
阅读全文
摘要:阻塞队列详解之对ArrayBlockingQueue分析
阅读全文
摘要:针对线程池任务Future接口,FutureTask类,CompletionService接口,CompletableFuture类的分析
阅读全文
摘要:java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器
阅读全文
摘要:针对线程池底层原理详解与源码分析部分的补充,由于那边篇幅太长了,我再另开一篇补充一下定时线程池
阅读全文
摘要:深入剖析了线程池的生命周期,参数解析,调用方法详解,包括方法流程
阅读全文
摘要:仅作为索引目录,打算针对每个阻塞队列都进行剖析
阅读全文
摘要:CAS(Compare And Swap,比较并交换)原本指一种操作,后感觉衍生成为一种思想,作为解决并发冲突的一种手段:如自旋+CAS操作形成的乐观锁,如原子操作类的产生。究其根源:要解决并发冲突,要了解并发三大特性:可见性,有序性,原子性。那么是怎么保证这三种特性的?
阅读全文
摘要:synchronized的意义 解决了Java共享内存模型带来的线程安全问题: 如:两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?(针对这个问题进行分析) 代码展示 public class SyncDemo { private static vola
阅读全文
摘要:概念说明 逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围从而决定是否要将这个对象分配到堆上。逃逸分析的基本行为就是分析对象动态作用域。 逃逸类型 方法逃逸(对象逃出当前
阅读全文
摘要:概念说明 Hotspot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据 (Instance Data)和对齐填充(Padding)。 对象头:比如 hash码,对象所属的年代,对象锁,锁状态标志,偏向锁(线程)ID,偏向时间,数组长度(数组对象才有)等。 实例数据
阅读全文
摘要:说明 Monitor,直译为“监视器”,而操作系统领域一般翻译为“管程”。管程是指管理共享变量以及对共享变量操作的过程,让它们支持并发。在Java 1.5之前,Java语言提供的唯一并发语言就是管程,Java 1.5之后提供的SDK并发包也是以管程为基础的。除了Java之外,C/C++、C#等高级语
阅读全文