java线程的sleep(),wait(),notify(),yield()方法的区别要点

java线程的sleep(),wait(),notify(),yield();

以前看的,很久不用忘了,现在把区别的要点重新整理一下:

1.sleep()使线程休眠一段时间,一段时间结束后,线程进入可执行状态,但并不是立即执行,只是在被排程器调用的时候才执行。在休眠期间,并不释放所持有的“锁”;

2.wait()使线程休眠一段时间,若设置参数,时间到时,线程就自动进入可执行状态。若没有,则需要notify()方法去调用。注意:wait()方法和notify()方法都时针对this对象的,调用wait()方法后,会释放加在对象上的“锁”。

3.yield()使线程放弃执行的权利,进入可执行状态,也就意味着线程在yield()方法后,有可能又执行。使用yield()方法,线程并不释放自己锁持有的“锁”。

参考:http://blog.csdn.net/feijianxia/archive/2007/10/18/1830454.aspx

你可能感兴趣的:(java线程的sleep(),wait(),notify(),yield()方法的区别要点)