我认为,锁作为并发的基础工具之一,你至少需要掌握:

    • 理解什么是线程安全。
    • synchronized、ReentrantLock 等机制的基本使用与案例。

    更近一步,你还需要:

    • 掌握 synchronized、ReentrantLock 底层实现;理解锁膨胀、降级;理解偏斜锁、自旋锁、轻量级锁、重量级锁等概念。
    • 掌握并发包中 java.util.concurrent.lock 各种不同实现和案例分析。

    第15讲 | synchronized和ReentrantLock有什么区别呢?
    第16讲 | synchronized底层如何实现?什么是锁的升级、降级?