1. synchronized是JVM层面上的,而lock是一个接口
2. 发生异常是,synchronized会自动释放占有的锁;而lock必须在finally里释放锁,不然可能引起死锁的发生。
3. lock等待锁过程中可以用interrupt来终端等待,而synchronized只能等待锁的释放,不能响应中断;
4. lock可以通过trylock来知道有没有获取锁,而synchronized不能;
5. synchronized在少量同步时跟lock效率差不多,大量同步时synchronized效率较低。
synchronized与lock的区别
猜你喜欢
转载自my.oschina.net/u/2402401/blog/1649906
今日推荐
周排行