public class ThreadTest extends Thread { public void run() { System.out.println("In run"); yield(); System.out.println("Leaving run"); } public static void main(String []argv) { (new ThreadTest()).start(); } }
public class ThreadTest extends Thread { public void run() { System.out.println("In run"); yield(); System.out.println("Leaving run"); } public static void main(String []argv) { (new ThreadTest()).start(); } }
程序运行输出只有In run
程序运行输出只有Leaving run
程序运行输出先有In run后有Leaving run
程序运行输出先有Leaving run后有In run
程序没有任何输出就退出了
程序将被挂起,只能强制退出
public static void main(String []argv) throws InterruptedException { Thread t1 = new ThreadTest(); t1.setDaemon(true); t1.start(); System.out.println("main---------"); }不过结果就
class MyThread extends Thread{ @Override public void run(){ System.out.println("I am run"); // 线程让步 没有多线程程 不让步 但是 即使有多线程 因为线程的执行优先级是由cpu决定的 // 可能yield让步也没作用 yield(); System.out.println("Leaving run"); } public static void main(String[] args) { new Thread(new MyThread()).start(); } /** * 结果 * I am run * Leaving run */ }