sheet

synchronized ReentrantLock
对象头里面表示锁 上层 API 底层使用 CAS
不可重入 可重入
不公平 在构造的时候可以指定是否是公平锁
控制粒度无法狠详细 可以使用 condition 精确控制每一个线程
JVM 层面底层是 monitor enter 和 monitor exit 底层基于 CAS
不可中断 可以中断
无需释放 手动释放,一般在 finally 里面去释放

接下来要分析 condition 和 ReentrantLock 以及 它父类的关系。