目录 1、锁的分类 1.1 可重入锁、不可重入锁 1.1.1 定义 1.2 乐观锁、悲观锁 1.2.1 定义 1.3 公平锁、非公平锁 1.3.1 定义 1.4 互斥锁、共享锁 1.4.1 定义 2、synchronized 2.1 类锁,对象锁 2.2 synchronized 优化 2.3 synchronized实现原理 2.4 synchronized的锁升级 2.5 重量锁底层ObjectMonitor ObjectMonitor核心属性: C++中实现的加锁流程: TryLock: try_enter: enter EnterI 3、AQS概述 3.1 AQS重要参数 3.2 AQS常见的问题 3.2.1 AQS中为什么要有一个虚拟的head节点 3.2.2 AQS中为什么选择使用双向链表,而不是单向链表 4、ReentrantLock