我要创建多个流程构建器还是一个?

时间:2019-02-13 04:22:58

标签: java process

我需要产生多个相同的进程。它们使用相同的路径,但是文件内容之一在qs args中更改。是否为每个流程创建一个新的流程构建器实例?还是只拥有一个processBuilder实例,并使用processBuilder.start()生成多个进程?

while(true) {
    ProcessBuilder processBuilder = new ProcessBuilder(path);
    processBuilder.redirectErrorStream(true);
    processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
    Process process = processBuilder.start();
}

或这个

ProcessBuilder processBuilder = new ProcessBuilder(path);
processBuilder.redirectErrorStream(true);
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
while(true) { 
    Process process = processBuilder.start();
}

1 个答案:

答案 0 :(得分:0)

Java文档说 “每个ProcessBuilder实例管理一个流程属性集合。start()方法使用这些属性创建一个新的Process实例。可以从同一实例重复调用start()方法以创建具有相同或相关属性的新子流程。” / p>

https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

第二种方法应该没问题。