- 实现方式不同
synchronized是java中的关键字,lock是java中的一个接口。
2. 锁的释放方式不同
加了synchronized的代码块和方法会自动释放锁,使用lock的代码块需要手动释放锁。
3.锁的范围不同
synchronized可以锁整个对象和Class,Lock锁的是共享的代码块
4.使用灵活度不同
synchronized无法知道锁有没有成功(没有显示的上锁和释放锁),Lock锁可以知道有没有成功
5.效率不同
当竞争资源非常激烈时,lock的性能要高很多。