Java中runtime.exec的同步性

时间:2012-10-21 18:45:01

标签: java process jvm runtime.exec

我有一些代码,其中调用proc = Runtime.getRuntime().exec(cmd)来启动子进程,然后在父进程和子进程之间进行一些通信。在某些情况下,我在从父级到子级的write()和flush()调用期间得到java.io.IOException: The pipe is being closed。有时会发生这种情况但不是每次都发生。

我的假设是子进程正在启动(因此proc.getInput/OutputStream()有效),但父进程在子进程完全运行/执行之前尝试写入子进程。这看起来似乎有道理吗?我没有足够的JVM经验来真正自信。目前我的解决方案是让子进程写入父进程,通知它已启动并运行;这种方法非常好,但对此感觉更有信心会很好。

如果需要更多代码详情或其他任何内容,我很乐意提供。

谢谢!

0 个答案:

没有答案