在下面的代码中,预测的输出是什么?
public class Threads2 implements Runnable {
public void run()
{
System.out.println("run.");
throw new RuntimeException("Problem");
}
public static void main(String[] args)
{
Thread t = new Thread(new Threads2());
t.start();
System.out.println("End of method.");
}
}
给出的可能结果是:
End of method.
run.
java.lang.RuntimeException: Problem
或者
run.
java.lang.RuntimeException: Problem
End of method.
据我说,只有答案2是可能的,请帮助我理解。
最佳答案
执行将产生两个线程,一个是主线程(一个运行主方法),另一个是在main方法中创建的线程。由于就线程的运行顺序而言,您不能保证任何事情,因此代码可以运行多个顺序。
因此,让我们调用主线程Thread1和创建的线程Thread2。然后,在启动Thread2之后,就可以进行以下操作:
而且,实际上存在第三种可能性(我认为):
关于java - 在调用旁边的语句执行之后,是否可以打印方法调用输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13776970/