2014-05-22 66 views
0

我想在同一個程序中使用兩個進程生成器我該怎麼做這兩個進程生成器都在同一個文件上執行不同的任務我該如何執行兩者。程序中的多個processbuilder

ProcessBuilder pb = new ProcessBuilder("nusmv ", "inputfile.smv"); 
       Process p = pb.start(); 


ProcessBuilder pb123 = new ProcessBuilder("nusmv","-int","inputfile.smv"); 
      Process process123 = pb123.start(); 

它只是執行第一個processbuilder第二個被忽略。

+0

我不這麼認爲 – rpax

+0

pb.start()是否陷入了無限循環? –

+0

它只是給第一個進程生成器的結果第二個被忽略 – student1

回答

0

有兩個問題我可以想到: 1.爲進程調用process.waitFor(),以便在啓動其他進程之前完成每個進程。 2.在進入另一個進程之前,先沖洗一個進程的輸出和錯誤流。許多操作系統爲標準輸入和輸出流提供有限的內存緩衝區。因此,如果您不立即刷新或處理流,則可能會導致進程阻塞甚至死鎖。 欲瞭解更多信息,請參閱此鏈接。 http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html