在Java中暂停程序并在其暂停的位置再次运行

时间:2013-12-01 21:13:20

标签: java

我正在用Java创建一个程序,我在其中调用另一个要执行的程序。

在特定时间,假设在2ms之后我想暂停它并运行另一个程序,在执行第二个程序2ms后,我希望第一个程序在暂停时执行。我有什么方法可以用Java做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您说您正在使用Runtime.getRuntime().exec("java process1")

当你使用Runtime.getRuntime().exec时,你必须从stdout / stderr流中读取,否则其他程序可能会挂起。许多其他Stackoverflow问题都提到了这一点;这是一个共同话题。

如果这是一项教育任务,即使你在这种特殊情况下并不需要,也应该以“正确的方式”做到这一点。

如果您想同步执行此操作,您只需要join要创建的2个线程来读取stdout和stderr。

实际上将stderr重定向到stdout可能更容易,然后根本不需要多个线程,你只需从当前线程中的进程'stdout读取。

P.S。现在推荐ProcessBuilder,它应该优于Runtime.exec