黑马程序员技术交流社区

标题: sleep() 和 wait() 有什么区别?  [打印本页]

作者: 小小6456    时间: 2014-5-19 13:02
标题: sleep() 和 wait() 有什么区别? 
求解。。。。。。。。呵呵
作者: 莫问纷飞    时间: 2014-5-19 13:05
1,sleep必须指定时间,wait可以指定可以不指定。
2,sleep和wait都可以让线程处于冻结状态,释放执行权。(相同点)
3,持有锁的线程执行sleep,不释放锁,持有锁的线程执行到wait释放锁。
4,sleep到时间会自动醒,wait没有指定时间,只能被其他线程通过notify唤醒。
作者: 路漫漫_求索    时间: 2014-5-19 20:22
sleep() 和 wait() 有什么区别?

sleep()---方法,需要指定睡的时间
try{Thread.sleep(10);}catch(Exception e){}//进来的线程,暂时睡10毫秒



而wait()--不需要指定时间,只是让线程暂停一下,但需要notify()唤醒,而且等待和唤醒必须是同一个锁。
        public void run()
        {
                if(!p.flag)
                        try{p.wait();}catch(Exception e){}//调用wait方法(存在异常)
                System.out.println(p.name+"....."+p.sex);
                p.flag=false;
                p.notify();//唤醒
        }





作者: youcyou    时间: 2014-5-19 20:28
学习了  
作者: 周俊波    时间: 2014-5-19 20:32
sleep是睡,wait是等,睡自己会醒,等就只能等着别人叫你醒了
作者: alax    时间: 2014-5-19 22:37
sleep()是程序休眠,是Thread里面的方法 程序休眠一段自定义的时间后,自动解除休眠;
作者: 郭帅帅    时间: 2014-5-19 22:45
我也是来看答案的,呵呵
作者: hengxing0079    时间: 2014-5-20 00:21
人过留名,知识掠走!




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