gpt4 book ai didi

java - Java程序中创建的新进程在使用后是否应该销毁?

转载 作者:行者123 更新时间:2023-12-01 13:12:43 26 4
gpt4 key购买 nike

我正在使用进程生成器创建一个进程,并执行 waitFor() 来挂起当前线程,直到该进程完成。我应该在进程执行后在finally block 中执行process.destroy(),以确保可以回收进程资源吗?或者至少关闭与该进程相关的流?即使在 waitFor() 之后还有必要吗?

最佳答案

根据 documentation

Running processes hold resources. When a process is no longer used, the process should be closed by calling destroy(). This will kill the process and release the resources that it holds.

所以,在一般情况下,如果您创建一个进程,您需要在finally block 中调用destroy()。另请注意 destroy() 还将释放包含流的进程所持有的 JVM 资源。

如果您使用waitFor (),那么它会导致调用线程等待与该对象关联的 native 进程完成执行。这应该关闭进程并清理资源以正常终止进程。但如果是进程异常终止(通过waitFor()方法的返回值可以知道)就需要清理资源了。

在已经销毁的进程上调用destroy()不会造成任何损害。

关于java - Java程序中创建的新进程在使用后是否应该销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726597/

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