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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁一 中级黑马   /  2013-3-24 08:06  /  1977 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丁一 于 2013-3-24 08:37 编辑

既然使用了同步代码,一个时间只能有一个线程运行,还用必要使用sleep 吗? 为什么?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

3 个回复

倒序浏览
如果是wait是有必要的,sleep没有必要,因为在执行同步代码块的过程中,执行了Thread.sleep()方法,当前线程放弃CPU,开始睡眠,在睡眠中不会释放锁。
而当前线程执行了wait,会释放锁,然后别的线程就可以进来。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
你可能想问为什么同步代码块中为什么还用sleep吧,

个人认为 同步代码块中用sleep是对现实状况的一种模拟,老师上课这样讲,是为啦更好的让我们理解,无论一个线程要执行多长时间,其他线程都必须等待我执行完

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
tuo1254 发表于 2013-3-24 08:15
如果是wait是有必要的,sleep没有必要,因为在执行同步代码块的过程中,执行了Thread.sleep()方法,当前线 ...

我感觉也没用了:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马