区别 :
-
sychronized是⼀个关键字,ReentrantLock是⼀个类
- sychronized会⾃动的加锁与释放锁,ReentrantLock需要程序员⼿动加锁与释放锁
-
sychronized的底层是JVM层⾯的锁,ReentrantLock是API层⾯的锁
-
sychronized是⾮公平锁,ReentrantLock可以选择公平锁或⾮公平锁
-
sychronized锁的是对象,锁信息保存在对象头中,ReentrantLock通过代码中int类型的state标识来标识锁的状态
-
sychronized底层有⼀个锁升级的过程