gpt4 book ai didi

java - java中的线程可以监视它启动的进程吗?

转载 作者:行者123 更新时间:2023-11-29 07:56:39 24 4
gpt4 key购买 nike

例如,如果我有一个包含 10 个线程的池,这些线程退出并启动不同的进程(perl 脚本),是否有一种方法可以让这些线程“检查”这些脚本以查看它们的运行情况?

有时某些脚本会卡住,我无从知晓。所以我一直在想办法让线程每隔一段时间检查一次脚本,这样我就可以在脚本挂起时得到通知,这样我就可以开始弄清楚它们挂起的原因并解决问题。

最佳答案

For example if i have a pool of 10 threads and these threads go out and start different processes (perl scripts), is there a way that those threads can "check up" on those scripts to see how they're doing?

我知道这样做的唯一方法是,如果脚本本身每隔 X 秒输出某种状态消息到标准输出或错误,并且生成脚本的线程正在主动读取,等待输出。然后它可以更新有关进程的状态信息。

如果您使用ProcessBuilder 并调用start() 来获取Process,那么您可以附加一个BufferedReaderprocess.getOutputStream() 以监视脚本。您当然也可以调用 process.exitValue() 来查看进程是否已完成,但不会告诉您它是否已挂起。

或者,脚本可以通过套接字或其他 IPC 以某种方式回调监控进程,但我认为仅监控输出流是最好的方法。

关于java - java中的线程可以监视它启动的进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17298717/

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