用J语言多线程运行Python脚本

2024-10-01 09:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个小Java应用程序,它从多个线程执行一个Python脚本。Python脚本发送一个SMS,执行大约需要1-2秒。在

当只运行一个线程时,一切都很好。但是当使用多个线程时,并且脚本需要执行多次(同时),并不是所有线程都能成功执行Python脚本。在

所有线程都包含相同的“PythonExecutor”对象。类包含这些方法。我用的是同步方法。在

public class PythonExecutor {

  // Other stuff

  public synchronized void runScript() {

        String scriptFile = prefs.getScript();

        try {
              runPython(scriptFile);
        } catch (Exception ex) {
             ...
        }
  }


  private void runPython(String _scriptFile) throws IOException {
              String[] cmd = {"python", _scriptFile,};
              Runtime.getRuntime().exec(cmd);
  }

}

谁能告诉我怎么解决这个问题吗?在

谢谢


Tags: 对象方法脚本cmd应用程序stringjavapublic
1条回答
网友
1楼 · 发布于 2024-10-01 09:31:34

更新!在

我找到了解决问题的办法。我用的是ProcessBuilder而不是Runtime,它工作得很好。在

  private void runPython(String _scriptFile) throws IOException, InterruptedException {
              ProcessBuilder pb = new ProcessBuilder("python", _scriptFile);
              Process p = pb.start();
              p.waitFor();
  }

相关问题 更多 >