我需要产生多个相同的进程。它们使用相同的路径,但是文件内容之一在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();
}
答案 0 :(得分:0)
Java文档说 “每个ProcessBuilder实例管理一个流程属性集合。start()方法使用这些属性创建一个新的Process实例。可以从同一实例重复调用start()方法以创建具有相同或相关属性的新子流程。” / p>
https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
第二种方法应该没问题。