Synchronized 和Lock区别

Synchronized 和Lock区别

1.Synchronized是内置的java关键字,Lock是一个java类

2.Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁

3.Synchronized会自动释放锁,lock必须要手动释放锁,不然会死锁

4.Synchronized线程1(获得锁,阻塞),线程2(等待,一直等):Lock锁就不一定会等待下去

5.Synchronized可重入锁,不可以终端,非公平锁;Lock,可重入锁,是够公平可以自己设置,默认非公平,在()加上true变为公平锁

6.Synchronized适合锁少量的同步代码,Lock适合锁大量的同步代码

 

原文地址:https://www.cnblogs.com/scenario/p/13826471.html