2016-02-25 3 views
0

Начиная с этой ситуации:Процесс p = Runtime.getRuntime(). Exec() будет выполняться асинхронно?

 for (String certificateSha1:certificateSha1List){ 
      Process p = Runtime.getRuntime().exec(new String [] {"security", "delete-certificate", "-Z", certificateSha1}, null , new File(this.workDir+""));  

      Helpers.asynchOutputWrite(new InputStreamReader(p.getInputStream()), standardOutput); 
     } 

И отметив, что Helpers.asynchOutputWrite создает новый поток, который будет писать параметризированном поток в этот выходной файл ... будут ли эти потоки перекрываются сами сочинительствами в файл? или будет ли следующая итерация для ожидания до тех пор, пока не завершится метод exec()?

Благодаря

ответ

3

Если вы не вызовете p.waitFor(); ваш процесс будет счастливо работать одновременно наряду с процессом, который он породил (p).

+0

поэтому достаточно добавить p.waitFor(); после Helpers.asynchOutputWrite? – NullPointerException

+0

@NullPointerException, если вы хотите дождаться завершения процесса, да. –

Смежные вопросы