synchronized和Lock区别

HeJin小于 1 分钟JavaJUC并发编程

1、synchronized内置关键字,Lock是一个接口

2、synchronized无法判断获取锁得状态,Lock可以判断是否获取到了锁。

3、synchronized自动释放锁。Lock锁必须要手动释放锁。如果不释放锁,死锁

4、synchronized 线程1(获得锁,阻塞),线程2(等待,傻傻的等)。Lock锁就不一定会等待下去。

5、synchronized 可重入锁,不可以中断的,非公平锁。Lock,可重入锁,可以判断锁,非公平(可以自己设置)。

6、synchronized 适合锁少量的代码同步问题,Lock锁适合锁大量的同步代码。

锁是什么?如何判断锁的是谁?