社区
Java SE
帖子详情
synchronized和Lock 差别?
suhenhappy
2010-04-20 11:33:37
请问下高手们,synchronized和Lock有什么差别啊? 用法怎么用啊? 现在是用synchronize好?还是用lock好 ?
...全文
1073
6
打赏
收藏
synchronized和Lock 差别?
请问下高手们,synchronized和Lock有什么差别啊? 用法怎么用啊? 现在是用synchronize好?还是用lock好 ?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alinchuan
2010-04-20
打赏
举报
回复
[Quote=引用 3 楼 bao110908 的回复:]
有区别
所实现的锁功能是一致的,但是 Lock 的功能更为强大一些。
比如 Lock 可以产生多个条件变量,可以实现多个类似于 wait, notifyAll 的等待及唤醒功能。而 synchronized 只有一个条件变量,也就是锁对象的 wait 和 notifyAll
[/Quote]
顶 学习啦 !
yugong2009
2010-04-20
打赏
举报
回复
[Quote=引用 4 楼 bao110908 的回复:]
synchronized 也有好处的,比如一些性能监控工具,可以监测到 synchronized 的锁。无法监测到 Lock 的锁定,毕竟 Lock 的锁定是通过代码实现的,而 synchronized 是在 JVM 层面上实现的。要监控工具能监测到 Lock 的锁定那还需要有一段时日。
另外,synchronized 在锁定时如果方法块抛出异常,JVM 会自动将锁释放掉,不会因为出了异常没……
[/Quote]
正解,学习……
火龙果被占用了
2010-04-20
打赏
举报
回复
synchronized 也有好处的,比如一些性能监控工具,可以监测到 synchronized 的锁。无法监测到 Lock 的锁定,毕竟 Lock 的锁定是通过代码实现的,而 synchronized 是在 JVM 层面上实现的。要监控工具能监测到 Lock 的锁定那还需要有一段时日。
另外,synchronized 在锁定时如果方法块抛出异常,JVM 会自动将锁释放掉,不会因为出了异常没有释放锁造成线程死锁。但是 Lock 的话就享受不到 JVM 带来自动的功能,出现异常时必须在 finally 将锁释放掉,否则将会引起死锁。Lock 锁的代码结构一般是这样的:
lock.lock();
try {
xxxx;
} finally {
lock.unlock();
}
火龙果被占用了
2010-04-20
打赏
举报
回复
有区别
所实现的锁功能是一致的,但是 Lock 的功能更为强大一些。
比如 Lock 可以产生多个条件变量,可以实现多个类似于 wait, notifyAll 的等待及唤醒功能。而 synchronized 只有一个条件变量,也就是锁对象的 wait 和 notifyAll
soli11722984
2010-04-20
打赏
举报
回复
java5新特性之一,这个LOCK可以有很多用处,不过也相对烦琐了一点
和synchronized对比之下,其实都是为了实现同步功能,只是实现不一样,具体哪个好,看需求
hbgzg3006
2010-04-20
打赏
举报
回复
我咋不知道还有lock呢。
简单了解
synchronized
和
lock
的区别
主要介绍了简单了解
synchronized
和
lock
的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java编程
synchronized
与
lock
的区别【推荐】
互联网信息泛滥环境下少有的良心之作!如果您想对Java编程
synchronized
与
lock
的区别有所了解,这篇文章绝对值得!分享给大家,供需要的朋友参考。不说了,我先学习去了。
【Java面试题】
lock
与
synchronized
区别
【Java面试题】
lock
与
synchronized
区别
Java 面试题
synchronized
和
Lock
区别??
synchronized
和
Lock
区别? 来源及用法:
lock
是一个接口,是java写的控制锁的代码,而
synchronized
是java的一个内置关键字,
synchronized
是托管给JVM执行的;
synchronized
:在需要同步的对象中加入此控制,
synchronized
可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。
lock
:一般使用Reentrant
Lock
类做为锁。在加锁和解锁处需要通过
lock
()和un
lock
()显示指出。所以一般会在finally块中写un
Synchronized
用过吗,其原理是什么?
synchronized
的作用?
synchronized
和
lock
区别?
synchronized
是重量级锁还是轻量级锁?是重入锁吗?
Synchronized
用过吗,其原理是什么?
synchronized
的作用?
synchronized
和
lock
区别?
synchronized
是重量级锁还是轻量级锁?
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章