synchronized与lock的区别

1. synchronized是JVM层面上的,而lock是一个接口 
2. 发生异常是,synchronized会自动释放占有的锁;而lock必须在finally里释放锁,不然可能引起死锁的发生。 
3. lock等待锁过程中可以用interrupt来终端等待,而synchronized只能等待锁的释放,不能响应中断; 
4. lock可以通过trylock来知道有没有获取锁,而synchronized不能; 
5. synchronized在少量同步时跟lock效率差不多,大量同步时synchronized效率较低。

猜你喜欢

转载自my.oschina.net/u/2402401/blog/1649906