[英]Running Python scripts multithreaded in Java
我编写了一个从多个线程执行 Python 脚本的小型 Java 应用程序。 Python 脚本发送一条短信,执行大约需要 1-2 秒。
当只运行 1 个线程时,一切正常。 但是当使用多个线程,并且脚本需要多次(同时)执行时,并不是所有线程都能成功执行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);
}
}
谁能告诉我如何解决这个问题?
谢谢
更新 !
我找到了解决我的问题的方法。 我使用了 ProcessBuilder 而不是 Runtime,它工作得很好。
private void runPython(String _scriptFile) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("python", _scriptFile);
Process p = pb.start();
p.waitFor();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.