关系:
1、Synchronized与ReentrantLock都属于独占锁的实现,都可重入锁
区别:
1、Synchronized是关键字,JVM层面的实现;ReentrantLock是JAVA语言层面的实现。
2、ReentrantLock具备一些Synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式的获取锁,可以实现公平锁(默认非公平锁)。
3、Synchronized只有一个等待队列 而Lock 调用newCondition()产生多个等待队列。
关系:
1、Synchronized与ReentrantLock都属于独占锁的实现,都可重入锁
区别:
1、Synchronized是关键字,JVM层面的实现;ReentrantLock是JAVA语言层面的实现。
2、ReentrantLock具备一些Synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式的获取锁,可以实现公平锁(默认非公平锁)。
3、Synchronized只有一个等待队列 而Lock 调用newCondition()产生多个等待队列。