0

我是一名 C++ 工程师,所以请温柔!我有一些 Java 代码可以启动一个进程,但我想做的是暂停执行,直到新进程完成。

我如何在 Java 中做到这一点?

谢谢

4

4 回答 4

4

假设您有一个Process代表新创建的进程 use 的对象Process.waitFor(),它:

如有必要,使当前线程等待,直到此 Process 对象表示的进程终止。如果子进程已经终止,则此方法立即返回。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。

可以Process从以下位置获取对象:

于 2013-07-17T11:12:47.370 回答
2

如果“进程”是由java.lang.Process获得的java.lang.Runtime,则使用Process.waitFor()

只是为了完整起见:通常在 Java 中,您使用线程,等待线程的选项是调用thread.join()

于 2013-07-17T11:13:19.167 回答
0

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();
    }
于 2013-07-17T11:17:16.853 回答
0

如果我是对的,您正在尝试同步进程(线程)。

例如,如果您想在恢复主进程之前等待线程 t1 完成,这是一个想法:

Thread t1 = new MyThreadExample();
t1.start();
t1.join(); //wait for completion
/*
  write what you want to do after completion

*/
于 2013-07-17T11:26:40.543 回答