区别1:
Synchronized是Java的关键字;
Lock 是一个接口;
区别2:
Synchronized发生异常会自动释放锁,所以不会造成死锁;
Lock发生异常不会自动释放锁,常常需要在finally{}中手动编写unlock()方法;
区别3:
Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断;
区别4:
通过Lock可以知道有没有成功获取锁,而synchronized却无法办到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)