下面給出的代碼演示了Java多線程中isAlive()的使用... 我無法解釋輸出序列的顯示效果。我期望的輸出是r1 r1 true true r2 r2
任何人都可以幫我解決這個問題。isAlive()在java多線程中執行
public class MyThread extends Thread
{
public void run()
{
System.out.println("r1 ");
try {
Thread.sleep(200);
}
catch(InterruptedException ie) { }
System.out.println("r2 ");
}
public static void main(String[] args)
{
MyThread t1=new MyThread();
MyThread t2=new MyThread();
t1.start();
t2.start();
System.out.println(t1.isAlive());
System.out.println(t2.isAlive());
}
}
輸出: R1 真正 真正 R1 R2 R2
不,它不應該。你開始2線程和你的輸出完全取決於調度和其他事情。如果你正在尋找一個特定的輸出,這段代碼不會給它。它可以在你運行它的時間之間改變。 – Kayaman
爲什麼你認爲輸出應該是你期望的? –
你沒有真正解釋爲什麼你認爲輸出應該是你認爲應該是的。您最好審閱Oracle提供的併發教程文檔,然後在問題仍不清楚的情況下完善您的問題。 https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html – pvg