gpt4 book ai didi

java - Process.waitFor() 一个线程

转载 作者:行者123 更新时间:2023-11-30 09:24:54 27 4
gpt4 key购买 nike

在运行外部脚本时,我想同时或分别读取该脚本的 ErrorStream 和 OutputStream,然后进一步处理它们。因此,我为其中一个流启动了一个 Thread。不幸的是,Process 似乎并没有waitFor Thread 终止,而是在非线程流没有进一步输入后返回。

简而言之,这就是我正在做的事情:

ProcessBuilder pb = new ProcessBuilder(script);  
final Process p = pb.start();

new Thread(new Runnable() {
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
...read lines and process them...
}
}).start();

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
...read lines and process them...

int exitValue = p.waitFor();
p.getOutputStream().close();
return exitValue;

waitFor Thread 是否有可能终止?

最佳答案

您可以使用 Thread.join(...) 等待 Thread 完成。请注意,如果当前线程在您等待的线程完成之前收到中断,则调用将抛出 InterruptedException

关于java - Process.waitFor() 一个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15482492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com