下面给出的代码演示了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