黑马程序员技术交流社区
标题:
售票例子中,run方法同步代码块里的sleep()有什么作用?
[打印本页]
作者:
王利强
时间:
2012-3-14 14:06
标题:
售票例子中,run方法同步代码块里的sleep()有什么作用?
代码在下方
作者:
王利强
时间:
2012-3-14 14:07
代码如下
11.jpg
(29.91 KB, 下载次数: 107)
下载附件
2012-3-14 14:07 上传
作者:
赵孟恩
时间:
2012-3-14 14:23
当一个线程获得执行权,它执行run()时会获得一个锁,执行到sleep()时当前线程休眠(暂时停止执行xx毫秒),休眠时该线程还拥有着锁,其他线程无法进行
你把sleep时间调大一些效果会很明显的。通过sleep可以对程序有一定的控制,如多长时间循环一次等等
作者:
魏昂
时间:
2012-3-14 14:23
sleep()
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
由于sleep()方法是Thread类的方法,因此它不能改变对象的机锁。所以当在一个Synchronized方法中调用sleep()时,线程虽然休眠了,但是对象的机锁没有被释放,其他线程仍然无法访问这个对象。sleep()方法不需要在同步的代码块中执行。但是sleep()可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2