专注于快乐的事情

源码阅读

CLH

CLHCLH(Craig, Landin, and Hagersten)锁,简单的说,它使用队列的方式来解决n个线程来争夺m把锁的问题,每当一个新的线程需要获取锁,为其创建一个节点并放到队尾,如果该线程是队列中的第一个节点,则节点的l...

AbstractQueuedSynchronizer学习

AQS简介AbstractQueuedSynchronizer,抽象的队列式的同步器,简称AQS。AQS是Java并发框架的一个基础组件,java.util.concurrent并发包下很多类都是基于它实现的,如:ReentrantL...

多线程并发控制方法

多线程并发控制方法等待多线程完成场景:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待...

共享锁分析

共享锁代码分析参考代码ReentrantReadWriteLock ReadLock中的sync是一个Sync对象,Sync继承于AQS类,即Sync就是一个锁。ReentrantReadWriteLock中也有一个Sync对象,而且...