标签:exception except 静态方法 http notify join syn dex 调度
摘自 http://www.cnblogs.com/loren-Yang/p/7538482.html
一、区别
1、wait()来自于Object类而sleep来自于Thread类
2、sleep没有释放锁,但是wait释放了锁(使得其他线程可以使用同步控制块或者方法锁)
3、wait,notify和notifyAll只能在同步控制方法或者同步控制块使用,而sleep能在各个地方使用
4、sleep必须捕获异常,但是其它wait不用
5、sleep让一个线程睡眠,等待一段时间后,自动醒来进入可运行状态,不会马上进入运行状态,因为线程调度机制恢复线程也需要时间。如果调用interrup方法,则会抛出InterruptedException。如果不捕获这个异常,那么会进入TERMINATED状态。如果捕获这个异常,那么可以在catch中继续执行后面的代码。
6、sleep是静态方法,只会让当前线程sleep,t.sleep()并不会让t进入sleep
如果线程并不处于wait,sleep,join状态时,调用interrupt方法线程不会抛出InterruptedException。
wait和notiy必须在synchronized方法或者block中。
wait要在while循环中。
标签:exception except 静态方法 http notify join syn dex 调度
原文地址:https://www.cnblogs.com/ylxn/p/10395315.html