public class threadT extends Thread { public void run() {
System.out.println("In run"); yield();
System.out.println("Leaving run"); } public static void main(String args []) {
(new threadT()).start();
}}
为什么在 yield()之后还会打印出Leaving run?不是已经停止了吗?谢谢
System.out.println("In run"); yield();
System.out.println("Leaving run"); } public static void main(String args []) {
(new threadT()).start();
}}
为什么在 yield()之后还会打印出Leaving run?不是已经停止了吗?谢谢
public static void yield()暂停当前正在执行的线程对象,并执行其他线程。貌似没有其它线程哦 并且只是暂停,并不是停止哦
呵呵,为什么不呢?
yield()暂停后,如果此时有其它线程,Leaving run会等到其它线程执行完了后再执行,如果没有其它线程,它就很快会执行啊
如果此时具有相同优先级的其他线程处于就绪状态,那么yield()方法
把当前运行的线程放到可运行池中并使另一个线程运行.如果没有相同优先级的
可运行线程,则yield()方法什么都不做....