Juc锁

Synchronized 和 Lock 区别

 

1、Synchronized  是一个关键字、Lock  是一个对象

 

2、Synchronized  无法尝试获取锁,Lock  可以尝试获取锁,判断;

 

3、Synchronized  会自动释放锁(a线程执行完毕,b如果异常了,也会释放锁),lock锁是手动释放锁!如果你不释放就会死锁。

 

4、Synchronized  (线程A(获得锁,如果阻塞),线程B(等待,一直等待);)lock,可以尝试获取锁,失败了之后就放弃

 

 

 

 

5、Synchronized  一定是非公平的,但是 Lock  锁可以是公平的,通过参数设置;

6、代码量特别大的时候,我们一般使用Lock实现精准控制,Synchronized   适合代码量比较小的同步问题;
 
 
 
posted @ 2020-03-06 21:36  jack-jin  阅读(98)  评论(0)    收藏  举报