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