A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 九零零 中级黑马   /  2014-9-23 09:57  /  1363 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 九零零 于 2014-10-3 21:52 编辑

刚看到毕老师讲到lock.unlock();这个语句要放到finally语句中,就是释放锁的动作一定要执行,我就想到为什么在同步语句和同步函数中为什么不存在这个问题?老师讲到说同步语句和同步函数中的锁是隐形的,但是在同步语句和同步函数中就不存在没有释放锁导致其他线程不能进行的情况吗?

7 个回复

倒序浏览
木有人能解释下吗:'(
回复 使用道具 举报
这是要沉的节奏啊 是不是这个时间没人啊:(
回复 使用道具 举报
理论上也是存在的,但这不需要程序员管。拿面向对象来打比方,同步代码块和同步函数相当于JVM对程序员开放的接口,你调用就行了,不用管内部实现细节。
回复 使用道具 举报
好吧 感谢你回答 没人理睬 很桑心啊:(
回复 使用道具 举报
帮你顶起来吧
回复 使用道具 举报
郑飞 高级黑马 2014-9-24 17:17:15
7#
高级语言 所有简单的东西 底层应该都有原始的实现吧 原理都差不多的
回复 使用道具 举报
我个人理解是同步代码块或者同步方法区都有其作用范围,当作用范围过了之后,锁就自动释放了,而如果是lock.lock()的话,没有释放锁的动作就无法标识锁定的范围,,程序也会因此出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马