黑马程序员技术交流社区

标题: sleep与wait [打印本页]

作者: 张海洋    时间: 2013-4-9 17:16
标题: sleep与wait
sleep() 和 wait() 有什么区别?
作者: 梁航斌    时间: 2013-4-9 17:36
wait会释放锁,sleep不会,sleep来自Thread类,wait来自Object。
作者: 王大斌    时间: 2013-4-9 18:45
sleep只是让进程睡眠,到时间自动转成就绪态,而wait让起等待,没有唤醒之前不能自动苏醒进入就绪态
作者: 蓝色骨头    时间: 2013-4-9 18:52
sleep 让出处理器,睡眠指定时间,可以被中断 有一个异常要处理InterruptedException

wait 让出处理器,当前线程必须拥有此对象监视器,释放锁,等待,直到拥有此对象监视器的线程调用notify或notifyAll()唤醒,可以被中断有两个异常要处理InterruptedException和IllegalMonitorStateException
作者: 王军行    时间: 2013-4-9 18:54
主要区别在多线程方面,waite,停止后释放同步锁 sleep则依然不放锁,其他进程拿不到锁
作者: 严海燕    时间: 2013-4-9 19:25
sleep和wait的区别有:
  1,这两个方法来自不同的类分别是Thread和Object
   2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
  3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
    任何地方使用
   synchronized(x){
      x.notify()
     //或者wait()
   }
   4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。





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