黑马程序员技术交流社区

标题: synchronized()锁和Lock锁有什么区别?分别什么时候使用哪一... [打印本页]

作者: 路漫漫_求索    时间: 2014-5-20 18:16
标题: synchronized()锁和Lock锁有什么区别?分别什么时候使用哪一...
本帖最后由 路漫漫_求索 于 2014-5-24 11:49 编辑

synchronized()锁和Lock锁有什么区别?分别什么时候使用哪一个?
作者: alax    时间: 2014-5-21 03:50
synchronized 锁只锁括号里面的代码内容,一个方法或者一个类等等。如果被锁的代码抛出异常会自动释放锁资源。

lock 锁锁定lock和unlock之间的代码,被锁的代码抛出异常不会自动释放锁资源,需要try catch 后在finally里面手动unlock释放锁资源

作者: 右手的依恋    时间: 2014-5-21 17:29
是JDK1.4版本的,Lock锁是JDK1.5版本新添加进来的,可以说Lock锁是synchronized()锁的替代,功能是一样的,但是更加灵活,它实现了锁对象的显示操作,将锁和代码分离。
作者: never615    时间: 2014-5-22 16:33
lock是新功能,看毕老师的视频就知道了,它功能更加强大,可以一个锁里面分别唤醒和催眠不同的对象。。
作者: java木    时间: 2014-5-26 23:01
这个还真是我的盲点。
作者: 思维    时间: 2014-7-21 16:02
毕老师大部分内容讲的都是synchronized()锁:funk: 是不是开发中最常用啊
作者: 百谈千语    时间: 2015-3-30 07:14
synchronized锁可以锁任意对象,唤醒也是对象,是Obj中的方法
Lock的锁的解锁和加锁都是通过为它单独封装的Condition对象来进行的,定义Condition接口锁以及相互唤醒等操作
作者: 920792433    时间: 2015-10-6 16:19
真心学习很多,回答的很详细  受教了~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2