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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© H._张_♂ 中级黑马   /  2014-3-22 14:52  /  1761 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于同步代码块,不是说在一时间只有一个线程能进入期间吗?为啥老师这里说的是T3 T4都进入其中wait()呢?

同步代码块问题.png (65.45 KB, 下载次数: 19)

同步代码块问题.png

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
线程 进入wait状态释放对像锁,.直到其他线程(也只好是其他线程)notify 或 notifyAll 该线程重新获得 对像锁.

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
wait方法会释放锁啊,建议楼主去查查wait和sleep方法
回复 使用道具 举报
比如说这里的t3线程先得到同步代码块的任务执行权,而后该线程进入wait(),此时,该线程就会释放同步锁(没有执行权,也没有执行资格),此时t4线程会得到执行权,获得代码块的执行权,就算t3 在同步代码块中 notify(),也只是得到执行资格,会进入等待队列,发生阻塞,直到t4释放执行权、、

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
如果标记为假 t3持锁进入同步方法。但碰到wait后就释放了所持有的锁,这时t4也可以进入但碰到wait后也等待了,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马