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并...