1、Synchronized是关键字,ReentrantLock是类。
2、Synchronized会自动加锁与释放锁,ReentrantLock需要手动加锁与释放锁。
3、Synchronized底层是JVM层面的锁,ReentrantLock底层是API层面的锁。
4、Synchronized是非公平锁,ReentrantLock可以选择是公平锁或非公平锁。
5、Synchronized锁的是对象,锁信息保存在对象头中;
ReentrantLock通过代码中int型state标识来标识锁的状态。
6、Synchronized底层有一个锁升级的过程。