小程序不清執行我創建了一個測試程序使用線程:與線程
class First implements Runnable {
public void run() {
System.out.print("One ");
}
}
class Second implements Runnable {
Thread other;
Second(Thread t) {other = t;}
public void run() {
System.out.print("Two");
}
}
public class ThreadTest {
void go() {
First first = new First();
Thread t = new Thread(first);
Second second = new Second(t);
Thread u = new Thread(second);
t.start();
u.start();
}
public static void main(String[] args) {
new ThreadTest().go();
}
}
我預計它會打印:
一個 一個
但它突然對我來說印:
一個 兩個
我不明白爲什麼會發生這種情況。我認爲在這兩個線程中,必須調用First類的方法run()
。因爲我將First實例傳遞給Thread構造函數,然後將創建的線程傳遞給第二個構造函數。因此來自First class的方法run()
優先於來自Second class的run()
方法。我錯在哪裏?
謝謝!我非常無禮 –