Lock与synchronized的区别如下:
1.Lock是一个接口,synchronized则是内置的语言实现,在java中是一个关键字。
2.synchronized会自动释放锁,而Lock必须手动释放锁。
3.Lock可以让等待锁的线程响应中断,而synchronized不会,线程会一直等待下去。
4.通过Lock可以知道线程有没有拿到锁,而synchronized不能。
5.Lock能提高多个线程读操作的效率。
6.synchronized能锁住类、方法和代码块,而Lock是块范围内的。
7.Lock 实现了提供比使用 synchronized 方法和语句可获得的更广泛的锁定操作