class A implements Runnable {
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
class B implements Runnable {
public void run() {
new A().run();
new Thread(new A(), "name_thread2").run();
new Thread(new A(), "name_thread3").start();
}
}
public class Main {
public static void main(String[] args) {
new Thread(new B(), "name_thread1").start();
}
}
輸出是什么笆呆?
============================
name_thread1
name_thread1
name_thread3
============================
new Thread(new A(), "name_thread2").run()和 new Thread(new A(), "name_thread3").start()不同的是 new Thread(new A(), "name_thread2").run()只是會(huì)在本線程內(nèi)部執(zhí)行亡笑,而 new Thread(new A(), "name_thread3").start()將會(huì)新建一個(gè)線程,然后在新建的線程中執(zhí)行run张咳,所以有以上結(jié)果。