我看到有趣的行爲。我這段代碼運行Java線程:在啓動後調用Thread對象的run()方法
public class ThreadsTest {
public static void main(String[] args) {
Runnable mr = new MyRunnable();
Thread t1 = new Thread(mr);
Thread t2 = new Thread(mr);
t1.setName("first");
t2.setName("second");
t1.start();
t2.start();
t1.run();
}
}
class MyRunnable implements Runnable {
public void run() {
for (int i=0; i < 2; i++) {
System.out.println("Running: " + Thread.currentThread().getName());
}
}
}
我得到的輸出是:
Running: first
Running: first
Running: second
Running: second
我期待看到類似這樣的東西:
Running: first
Running: first
Running: second
Running: second
Running: main
Running: main
有誰知道爲什麼我不在我的輸出中的某處可以看到Running: main
。謝謝。
我不知道你爲什麼期望。你能解釋一下嗎? – AHungerArtist 2013-02-10 04:22:07
對Thread對象調用run()方法't1.run()'應調用MyRunnable類中的run方法。它應該輸出當前正在運行的線程是主線程。對Thread對象調用run()方法的行爲與調用任何其他對象上的任何方法的行爲相同。我希望我的回答對你有意義。 – robonerd 2013-02-10 04:28:49