我有一个启动的Java应用程序与“ ant myapp”。现在我希望该应用程序能够自我复制,即在新进程中启动它的新实例。

我知道应该用Processbuilder或Runtime.exec()完成。

如果我只是在调用Processbuilder或Runtime.exec('ant myapp'),它将启动一个新的JVM并在一个单独的进程中运行它。这是正确的吗?

但是我也听说,可以在新进程中但在同一JVM中运行该应用程序。我怎样才能做到这一点?

如果我没有新的JVM,则会消耗较少的内存。但是,如果新进程在相同的JVM中运行,有什么不利条件?我在应用程序中有很多套接字连接到服务器。因此,当不创建新的JVM时,这可能是一个问题吗?

最佳答案

看看ExecutorService。您可以合并它们,设置超时等。

至于套接字,内存和CPU:您应该分析应用程序,以确保适当地使用有限的资源。对于所有Java应用程序都是如此。您无法通过猜测或在此处提问来知道答案。每种情况都不同。唯一知道的方法是通过分析来获取一些数据。

09-16 04:29