美文网首页
synchronized和lock区别

synchronized和lock区别

作者: 向上吧_少年 | 来源:发表于2022-10-10 06:54 被阅读0次

1.存在层次,synchronized是java关键字,在jvm层面上,而Lock是jvm的一个接口
2.锁的获取,synchronized假设A线程获取到锁,B线程等待,如果A线程阻塞,B线程会一直等待;Lock视情况而定,Lock有多个锁获取方式,大致就是可以尝试获取锁,线程可以不用一直等待(可以通过tryLock判断有没有锁)
3.锁的释放,synchronized:以获取锁的线程执行完同步代码释放锁,线程执行发生异常,jvm会让线程释放;Lock是在finally中必须释放锁,不然容易造成线程死锁。
4.锁类型,synchronized:锁可重入、不可中断、非公平;Lock可重入、可判断、可公平。
5.性能,synchronized:少量同步;Lock适用于大量同步。
6.支持锁的场景,synchronized:独占锁;Lock公平锁与非公平锁

相关文章

网友评论

      本文标题:synchronized和lock区别

      本文链接:https://www.haomeiwen.com/subject/itskartx.html