java.lang.Process.waitFor()和exitValue()之间有区别吗?

最佳答案

如果子进程未终止,则exitValue引发IllegalThreadStateException;如果子进程终止,则返回退出值。

WaitFor将阻塞调用线程,直到子进程终止,如果子进程已终止,则立即返回。

因此,我想说的是,当子进程已经终止时,它们的行为将相同,但是当子进程仍在运行时,它们的行为将有所不同。
如果子进程正在运行,exitValue将抛出一个异常,而waitFor将阻塞调用线程。

10-01 12:56