Lock 是基于 CAS 实现的,而 synchronized 是 Java 中的关键字,JVM 内置实现synchronized 会自动释放线程占用的锁。Lock 需要手动 unLock() 释放锁,而且要在 finally 块中,防止出现异常死锁。Lock 可以响应中断,synchronized 不行Lock 可以 tryLock,synchronized 不行synchronized 是非公平的,而 Lock 有公平和非公平两种实现Lock 可以实现读写分离,提高读效率