我该如何等待流程完成

时间:2013-07-17 11:11:10

标签: java

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

我如何用Java做到这一点?

由于

4 个答案:

答案 0 :(得分:4)

假设您有一个Process对象代表新创建的流程使用Process.waitFor(),其中:

  

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

Process对象可以从以下地址获得:

答案 1 :(得分:2)

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

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

答案 2 :(得分: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();
    }

答案 3 :(得分:0)

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

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

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

*/