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://blog.csdn.net/fly910905/article/details/79765...
- 技术点: 1.线程与进程: 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个进程,而一个进程最少需要一个...
- 从使用的角度看 synchronized 和 lock 的区别 起初 java 中只有 synchronized ...
- Synchronized 和Lock 的区别 Synchronized 是java 关键字,实现级别是JVM 级别...
- 引用了 Lock与synchronized 的区别 详解synchronized与Lock的区别与使用 Java并...