相同点:
1.可重入;两者都是同一个线程当每进入一次,锁的计数器就会自增1,如果锁的计数器下降为0时就可以释放锁。
不同点:
1.锁的实现:Synchronized是依赖于JVM实现的,而ReenTrantLock是JDK实现的
2.功能区别:便利性:很明显Synchronized的使用比较方便简洁,并且由编译器去保证锁的加锁和释放,而ReenTrantLock需要手工声明来加锁和释放锁,为了避免忘记手工释放锁造成死锁,所以最好在finally中声明释放锁。
相同点:
1.可重入;两者都是同一个线程当每进入一次,锁的计数器就会自增1,如果锁的计数器下降为0时就可以释放锁。
不同点:
1.锁的实现:Synchronized是依赖于JVM实现的,而ReenTrantLock是JDK实现的
2.功能区别:便利性:很明显Synchronized的使用比较方便简洁,并且由编译器去保证锁的加锁和释放,而ReenTrantLock需要手工声明来加锁和释放锁,为了避免忘记手工释放锁造成死锁,所以最好在finally中声明释放锁。
本文标题:sychronized与ReentrantLock
本文链接:https://www.haomeiwen.com/subject/wfeugqtx.html
网友评论