用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

请选择技术分类

 *如果你找不到更细的分类,可以选择上级分类
当前位置:云代码 - 技术问答 - Java

java中sleep() 和 wait() 有什么区别?

 悬赏:50|提问者:神马|浏览:4668
举报|2013-01-12
java中sleep() 和 wait() 有什么区别?

最佳回答
sleep()是程序休眠,是Thread里面的方法 程序休眠一段自定义的时间后,自动解除休眠;
wait()是程序等待,是Object里面的方法  必须用notify()或者notifyAll()唤醒。

回答者:好凉快

等级:

积分:40

(3) | (2) 回答时间:2013-01-16

所有回答
举报|(3)|(2)2013-01-16
sleep()是程序休眠,是Thread里面的方法 程序休眠一段自定义的时间后,自动解除休眠;
wait()是程序等待,是Object里面的方法  必须用notify()或者notifyAll()唤醒。
举报|(1)|(1)2014-05-04

sleep是Thread类的静态方法。sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程执行,例如:

try{
System.out.println("I'm going to bed");
Thread.sleep(1000);
System.out.println("I wake up");
}
catch(IntrruptedException e) {
}


wait是Object的方法,也就是说可以对任意一个对象调用wait方法,调用wait方法将会将调用者的线程挂起,直到其他线程调用同一个对象的notify方法才会重新激活调用者

举报|(1)|(1)2014-07-18

 同意楼上

举报|(1)|(1)2014-09-25
百度
举报|(1)|(1)2015-01-06
yeild():线程暂时交出CPU的控制权给其他进程然后交互运行wait():使一个线程处于等待状态,并且释放所有持有对象的LOCKsleep()使一个正在运行的线程处于睡眠状态,是以个静态方法,调用此方法要捕获InterrrupedException异常。
举报|(1)|(1)2015-01-14
sleep()是程序休眠wait()是程序等待
举报|(1)|(1)2016-05-01
同求

sleep()方法是属于Thread类中的。而wait()方法,则是属于Object类中的。

sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。

在调用sleep()方法的过程中,线程不会释放对象锁。

而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备

获取对象锁进入运行状态

举报|(1)|(1)2017-04-18
??
#11542
举报|(1)|(1)2018-12-25
222
举报|(1)|(1)2021-06-30
desdfs
举报|(1)|(1)2022-02-06
1

继续回答


相关提问