黑马程序员技术交流社区

标题: 使用synchronized 时 还用必要使用sleep 吗? [打印本页]

作者: 丁一    时间: 2013-3-24 08:06
标题: 使用synchronized 时 还用必要使用sleep 吗?
本帖最后由 丁一 于 2013-3-24 08:37 编辑

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

作者: 壁虎    时间: 2013-3-24 08:15
如果是wait是有必要的,sleep没有必要,因为在执行同步代码块的过程中,执行了Thread.sleep()方法,当前线程放弃CPU,开始睡眠,在睡眠中不会释放锁。
而当前线程执行了wait,会释放锁,然后别的线程就可以进来。
作者: 魏福伟    时间: 2013-3-24 08:19
你可能想问为什么同步代码块中为什么还用sleep吧,

个人认为 同步代码块中用sleep是对现实状况的一种模拟,老师上课这样讲,是为啦更好的让我们理解,无论一个线程要执行多长时间,其他线程都必须等待我执行完
作者: 丁一    时间: 2013-3-24 08:37
tuo1254 发表于 2013-3-24 08:15
如果是wait是有必要的,sleep没有必要,因为在执行同步代码块的过程中,执行了Thread.sleep()方法,当前线 ...

我感觉也没用了:handshake




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