0
爲什麼MyThread的運行方法調用如果我傳遞MyRunnable來創建線程。但是如果我使用Thread類,我的結果是不同的。下面是使我困惑的代碼。 請給任何輸入。MyRunnable中的運行方法未調用
public class ThreadDemo {
public static void main(String[] args)
{
new Thread(new MyRunnable()).start();
new MyThread().start();
new MyThread(new MyRunnable()).start();
}
}
class MyThread extends Thread
{
MyThread() {}
MyThread(Runnable r) {super(r); }
public void run()
{
System.out.print(" Inside Thread ");
}
}
class MyRunnable implements Runnable
{
public void run()
{
System.out.print(" Inside Runnable");
}
}
那麼,打印行的順序是依賴於系統的。 –
@KodeCharlie:我不明白。請記住,這是在一個單獨的線程中 - 當「MyRunnable.run()'方法僅在* MyThread.run()打印*」內部Runnable「後被調用時,它如何首先打印」Inside Runnable「 ? –
單線程?我不明白你的意思。有4個線程 - 主線程和三個從main啓動的線程。首先打印的是系統如何執行線程的人爲因素 - 除非給予所述線程明確的優先級。我錯過了什麼嗎? –