黑马程序员技术交流社区

标题: 关于生产者消费者这部分的一个问题 [打印本页]

作者: 九零零    时间: 2014-9-23 09:57
标题: 关于生产者消费者这部分的一个问题
本帖最后由 九零零 于 2014-10-3 21:52 编辑

刚看到毕老师讲到lock.unlock();这个语句要放到finally语句中,就是释放锁的动作一定要执行,我就想到为什么在同步语句和同步函数中为什么不存在这个问题?老师讲到说同步语句和同步函数中的锁是隐形的,但是在同步语句和同步函数中就不存在没有释放锁导致其他线程不能进行的情况吗?
作者: 九零零    时间: 2014-9-23 10:24
木有人能解释下吗:'(
作者: 九零零    时间: 2014-9-23 10:58
这是要沉的节奏啊 是不是这个时间没人啊:(
作者: fantacyleo    时间: 2014-9-23 13:01
理论上也是存在的,但这不需要程序员管。拿面向对象来打比方,同步代码块和同步函数相当于JVM对程序员开放的接口,你调用就行了,不用管内部实现细节。
作者: 九零零    时间: 2014-9-23 13:23
好吧 感谢你回答 没人理睬 很桑心啊:(
作者: King_L    时间: 2014-9-23 15:52
帮你顶起来吧
作者: 郑飞    时间: 2014-9-24 17:17
高级语言 所有简单的东西 底层应该都有原始的实现吧 原理都差不多的
作者: 罗林军    时间: 2014-9-27 01:57
我个人理解是同步代码块或者同步方法区都有其作用范围,当作用范围过了之后,锁就自动释放了,而如果是lock.lock()的话,没有释放锁的动作就无法标识锁定的范围,,程序也会因此出错




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