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

Java程序中创建的新进程是否应该在使用后销毁?,java,memory-leaks,process,Java,Memory Leaks,Process,我正在使用process Builder创建一个进程,并执行waitFor()来挂起当前线程,直到进程完成。 我是否应该在流程执行后在finally块中执行process.destroy(),以确保流程资源可以回收?或者至少关闭与流程相关联的流?即使在waitFor()之后也需要这样做吗?根据 运行进程保存资源。当不再使用某个进程时,应通过调用destroy()关闭该进程。这将终止进程并释放它所拥有的资源 所以,在一般情况下,如果您创建一个进程,您需要在finally块中调用destroy(),

我正在使用process Builder创建一个进程,并执行waitFor()来挂起当前线程,直到进程完成。 我是否应该在流程执行后在finally块中执行process.destroy(),以确保流程资源可以回收?或者至少关闭与流程相关联的流?即使在waitFor()之后也需要这样做吗?

根据

运行进程保存资源。当不再使用某个进程时,应通过调用destroy()关闭该进程。这将终止进程并释放它所拥有的资源

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

如果使用的是
waitFor()
,则会导致调用线程等待与此对象关联的本机进程完成执行。这将关闭进程并清理资源以正常终止进程。但是,如果是异常进程终止(通过waitFor()方法的返回值可以知道),则必须清理资源


对已销毁的进程调用
destroy()
,也不会造成任何伤害

destroy()方法是否正常终止进程?当我在process.destro()之后通过process.exitValue()获得“1”的状态时。我们如何才能在status/exitValue为0的情况下正常关闭进程?