1.sleep()使线程休眠一段时间,一段时间结束后,线程进入可执行状态,但并不是立即执行,只是在被排程器调用的时候才执行。在休眠期间,并不释放所持有的“锁”;
2.wait()使线程休眠一段时间,若设置参数,时间到时,线程就自动进入可执行状态。若没有,则需要notify()方法去调用。注意:wait()方法和notify()方法都时针对this对象的,调用wait()方法后,会释放加在对象上的“锁”。
3.yield()使线程放弃执行的权利,进入可执行状态,也就意味着线程在yield()方法后,有可能又执行。使用yield()方法,线程并不释放自己锁持有的“锁”。
[转]http://blog.youkuaiyun.com/flowing_water/archive/2007/11/01/1861640.aspx
2.wait()使线程休眠一段时间,若设置参数,时间到时,线程就自动进入可执行状态。若没有,则需要notify()方法去调用。注意:wait()方法和notify()方法都时针对this对象的,调用wait()方法后,会释放加在对象上的“锁”。
3.yield()使线程放弃执行的权利,进入可执行状态,也就意味着线程在yield()方法后,有可能又执行。使用yield()方法,线程并不释放自己锁持有的“锁”。
[转]http://blog.youkuaiyun.com/flowing_water/archive/2007/11/01/1861640.aspx
本文介绍了Java中用于控制线程执行的三种方法:sleep(), wait() 和 yield() 的区别及应用场景。sleep() 和 yield() 不释放锁,而 wait() 会释放锁并等待通知。
759

被折叠的 条评论
为什么被折叠?



