我想重新启动一个线程以供某些用途,例如在下面的代码中。
class Ex13 implements Runnable {
int i = 0;
public void run() {
System.out.println("Running " + ++i);
}
public static void main(String[] args) throws Exception {
Thread th1 = new Thread(new Ex13(), "th1");
th1.start();
//th1.join()
Thread th2 = new Thread(th1);
th2.start();
}
}
当我执行上述程序时,有时我得到的输出为 Running 1 Running 2,有时我只得到 Running 1 经过几次运行后,我只得到 Running 1 作为输出。我对这种行为感到非常惊讶。任何人都可以帮助我理解这一点。如果我把 join() 那么我只得到 Running 1。