我有三个python脚本,我使用Process Runtime.getRuntime()。exec(" path")调用如下:
String abc= "C:\\Python27\\bin\\python.exe D:\\abc.py";
String efg="C:\\Python27\\bin\\python.exe D:\\efg.py";
callpy pyexc = new callpy();
pyexc.callpyQ(abc);
pyexc.callpyQ(efg);
callpy class:
public class callpy {
public void callpyQ (String path) throws Exception {
Process p = null;
p = Runtime.getRuntime().exec(path);
}
}
根据上面的代码,它逐个顺序执行,并且花费更多时间用于该程序。
有没有办法可以使用多线程并行调用这些进程,以避免最小化时间。 如果是这样,请建议代码怎么做?
答案 0 :(得分:-1)
让callpy
成为一个主题:
public class callpy extends Thread{
private String path;
public callpy(String p) {
path=p;
}
public void run() {
try {
Process p = null;
p = Runtime.getRuntime().exec(path);
p.waitFor();
} catch (Exception ex) {
//somthing ....
}
}
}
并运行main
:
String abc= "C:\\Python27\\bin\\python.exe D:\\abc.py";
String efg="C:\\Python27\\bin\\python.exe D:\\efg.py";
callpy p1 = new callpy(abc);
callpy p2 = new callpy(efg);
p1.start();
p2.start();
//do something ....
p1.join();
p2.join();