关系:
1、Synchronized与ReentrantLock都属于独占锁的实现,都可重入锁
区别:
1、Synchronized是关键字,JVM层面的实现;ReentrantLock是JAVA语言层面的实现。
2、ReentrantLock具备一些Synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式的获取锁,可以实现公平锁(默认非公平锁)。
3、Synchronized只有一个等待队列 而Lock 调用newCondition()产生多个等待队列。
本文探讨了Synchronized与ReentrantLock作为独占锁实现的区别。Synchronized为JVM层面实现,ReentrantLock则在JAVA语言层面提供更丰富的功能,如响应中断、支持超时及非阻塞获取锁,并可实现公平锁。此外,ReentrantLock通过newCondition()支持多个等待队列。
关系:
1、Synchronized与ReentrantLock都属于独占锁的实现,都可重入锁
区别:
1、Synchronized是关键字,JVM层面的实现;ReentrantLock是JAVA语言层面的实现。
2、ReentrantLock具备一些Synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式的获取锁,可以实现公平锁(默认非公平锁)。
3、Synchronized只有一个等待队列 而Lock 调用newCondition()产生多个等待队列。
225

被折叠的 条评论
为什么被折叠?