Process Runtime使用java执行并行

时间:2016-09-05 14:38:34

标签: java multithreading parallel-processing

我有三个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);
   }
 }

根据上面的代码,它逐个顺序执行,并且花费更多时间用于该程序。

有没有办法可以使用多线程并行调用这些进程,以避免最小化时间。 如果是这样,请建议代码怎么做?

1 个答案:

答案 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();