扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
- Lock是显示锁,需要手动开启和关闭。synchronized是隐士锁,可以自动释放锁。
- Lock是一个接口,是JDK实现的。synchronized是一个关键字,是依赖JVM实现的。
- Lock是可中断锁,synchronized是不可中断锁,需要线程执行完才能释放锁。
- 发生异常时,Lock不会主动释放占有的锁,必须通过unlock进行手动释放,因此可能引发死锁。synchronized在发生异常时会自动释放占有的锁,不会出现死锁的情况。
- Lock可以判断锁的状态,synchronized不可以判断锁的状态。
- Lock实现锁的类型是可重入锁、公平锁。synchronized实现锁的类型是可重入锁,非公平锁。
- Lock适用于大量同步代码块的场景,synchronized适用于少量同步代码块的场景。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版