https://xmind.ai/share/qSMk0B2P?xid=JmWYH0mH

类别 synchronized Lock
存在层次 Java 的关键字,在 JVM 层面上 是一个类
锁的释放 1、以获取锁的线程执行完同步代码,释放锁
2、线程执行发生异常,JVM 会让线程释放锁 在 finally 中必须释放锁,不然容易造成线程死锁
锁的获取 假如 A 线程获得锁,B 线程等待。如果 A 线程阻塞,B 线程会一直等待 分情况而定,Lock 有多个锁获取的方式,具体下面会说到,大致就是可以尝试获得锁,线程可以不用一直等待
锁状态 无法判断 可以判断
锁类型 可重入 不可中断 非公平 可重入 可判断 可公平(两者皆可)
性能 少量同步 大量同步

https://blog.csdn.net/u012403290/article/details/64910926

https://juejin.cn/post/7105677601934409759

https://xie.infoq.cn/article/4e370ded27e4419d2a94a44b3

https://learn.lianglianglee.com/专栏/Java 并发编程 78 讲-完/22 synchronized 和 Lock 孰优孰劣,如何选择?.md

IMG_3137.jpeg

IMG_3138.jpeg

面试突击:synchronized和ReentrantLock有什么区别?

synchronized 和 Lock 有什么区别?