这是一道SCJP练习题中的代码片段:
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.");
}
}
这个问题在这里部分提到了。
然而,我的问题与之前的问题不同。当我在几台机器上多次运行程序时,有时会在输出中的“run”之前出现RuntimeException
。对我来说这毫无意义,因为这些代码在同一个线程中执行,所以应该是相反的顺序。
有人能解释一下为什么会发生这种情况吗?