Thread.yield()

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:44:37
这个方法控制线程暂停....但他暂停多长时间呢 ?

如果没有时间限制。。 那又是怎样让线程重新启动呢/?

楼主你错误的理解了yiedld这个方法。
yiedld这个方法是让当前线程回到可执行状态,以便让具有相同优先级的线程进入执行状态,但不是绝对的。因为虚拟机可能会让该线程重新进入执行状态。
让线程暂时停止可以选择sleep方法。比如Thread.sleep(1000),当前线程睡眠1秒。需要知道的是,1秒后,线程是回到可执行状态,并不是执行状态,什么时候执行那是由虚拟机来决定的。所以sleep(1000)并不是在睡眠1秒后立即执行。

yield()方法只是把线程的状态有执行状态打回准备就绪状态,所以,执行这个方法后,有可能马上又开始运行,有可能等待很长时间。。。另外线程的控制不是看时间的。。。是看状态的。。楼主好好理解学习下吧

sheep(时间);

start()