同时运行在同一个JVM上运行的java程序?
假设我在同一台机器上同时运行两个java程序。 程序是在单个JVM实例中运行还是在两个不同的JVM实例中运行?
如果使用java
命令(从命令行)启动每个命令,它们将作为完全独立的JVM运行。
“程序”可以作为在一个JVM内运行的单独线程启动。
java
可以一次只打开一个应用程序,但你可以编写一个简单的启动程序 ,它将类名作为参数并在不同的线程中执行它们。 快速概述:
public class Launcher { public static void main(String[] args) throws Exception { for (int i = 0; i
称之为
java -cp Launcher com.example.App1 com.example.App2
应该在同一个VM内并行执行应用程序App1和App2。
假设您通过单词程序来表示流程,那么启动两个流程,将创建两个不同的JVM。
使用java应用程序启动器启动JVM进程; 这应该为你的程序提供一个入口点,这是主要的方法。 您可以从此入口点以及其他类中链接到其他类。 除非您启动另一个进程(运行另一个程序),否则这将继续在同一JVM进程中发生。
它取决于平台和JVM实现,但通常它们将在不同的VM中运行。
程序是在单个JVM实例中运行还是在两个不同的JVM实例中运行?
那取决于你。 最简单的方法是使用单独的JVM。
你可以做的是使用两个单独的线程。 例如
new Thread() { public void run() { System.out.println("this is running separately from the main thread!"); } }.start();
如果你想要两个独立的程序进行交互,你需要使用套接字