我是一名 C++ 工程师,所以请温柔!我有一些 Java 代码可以启动一个进程,但我想做的是暂停执行,直到新进程完成。
我如何在 Java 中做到这一点?
谢谢
假设您有一个Process
代表新创建的进程 use 的对象Process.waitFor()
,它:
如有必要,使当前线程等待,直到此 Process 对象表示的进程终止。如果子进程已经终止,则此方法立即返回。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。
可以Process
从以下位置获取对象:
ProcessBuilder.start()
Runtime.exec()
(其中有几个重载)。如果“进程”是由java.lang.Process
获得的java.lang.Runtime
,则使用Process.waitFor()
只是为了完整起见:通常在 Java 中,您使用线程,等待线程的选项是调用thread.join()
Read the stream from Process
. 它将在执行剩余代码之前等待进程完成。
Process p = Runtime.getRuntime().exec("your command(process)", null, new File("path of process where to execute"));
InputStream is=p.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
}
如果我是对的,您正在尝试同步进程(线程)。
例如,如果您想在恢复主进程之前等待线程 t1 完成,这是一个想法:
Thread t1 = new MyThreadExample();
t1.start();
t1.join(); //wait for completion
/*
write what you want to do after completion
*/