Java 如果我们运行两个JVM';同时,我必须记住的限制是什么?

Java 如果我们运行两个JVM';同时,我必须记住的限制是什么?,java,jvm,Java,Jvm,有没有可能产生两个独立的Java程序,比如programApples.Java和Grapes.Java,并且每一个都在机器上各自独立的JVM中运行 我这样做的动机是希望有一个Monitor类,它将检查另一个类输出的日志文件(称之为UnderSurveillance类)。一旦该子类被强制关闭,监视器类将对此进行操作(它将通过ProcessBuilder调用一个批处理文件,该批处理文件将生成另一个UnderSurveillance类) 总而言之,如果我们在UnderSurveillance上从命令行

有没有可能产生两个独立的Java程序,比如program
Apples.Java
Grapes.Java
,并且每一个都在机器上各自独立的JVM中运行

我这样做的动机是希望有一个Monitor类,它将检查另一个类输出的日志文件(称之为
UnderSurveillance
类)。一旦该子类被强制关闭,监视器类将对此进行操作(它将通过ProcessBuilder调用一个批处理文件,该批处理文件将生成另一个
UnderSurveillance
类)

总而言之,如果我们在
UnderSurveillance
上从命令行调用
CTRL+C
,那么它应该重新启动。当它重生时,它将恢复状态。例如,如果这是一个knockknock笑话应用程序,那么它将在我们之前停止的逻辑位置重新启动(因此,如果我们有10个knock-knock笑话,并且我们在完成KK笑话#5之前强制关机,它将在笑话#5重新启动并恢复)


谢谢

是的。您可以运行任意多个独立的JRE进程。唯一的限制是机器的有限资源。两个(或多个)进程无法在同一IP上的同一套接字上打开和侦听(例如)。

是的,但对您的问题提供更多上下文将提供更好、更有用的答案,而不是一堆猜测和噪音,这些猜测和噪音只会扰乱整个进程issue@MadProgrammer-谢谢你,我补充了一些我不知道你说的是什么意思“它将在相同的上下文中”。@KenGeis-谢谢,我的意思是,我的程序将经历一系列状态,比如说,10个。因此,如果我们在开始步骤7时关闭(即在步骤7完成之前),然后重新启动并在第7步继续。另外,所有单独进程使用的总堆大小不能超过您的计算机内存。@ares这是不正确的。我们大约从1957年起就拥有虚拟内存。端口是独占资源使用的一个可怕的例子。有SO_REUSEADDR(用于多播)和SO_REUSEPORT(用于单播)。它们只是一个坏例子,因为它们实际上可以由多个进程打开。如果您想了解更多信息,请阅读我提到的套接字选项上的文档(用谷歌搜索)。@Coffee这意味着您可以过度使用物理内存。