我可以执行Java类文件的多个实例吗?

时间:2009-05-12 11:01:20

标签: java binary jvm multiple-instances

我正在考虑使用不同的配置文件(作为命令行参数)执行相同java二进制文件(套接字应用程序)的多个实例。 JVM是否正确处理了这种情况?换句话说,如果我没有任何公共资源(可以锁定的文件等),这种方法会产生任何问题吗?如果是这样的话,我需要小心的是什么。

4 个答案:

答案 0 :(得分:10)

如果从命令行启动多个java实例,则会获得多个正在运行的JVM(每个实例一个)。

如果没有共享资源,您应该没有任何问题。

答案 1 :(得分:1)

正如Matthew先前所指出的,只要没有共享资源,我们就不会有任何问题。

只是为了增加一点,JVM就像一个容器,它为每次从命令行调用java时创建的java程序和JVM提供执行环境。

http://en.wikipedia.org/wiki/Java_Virtual_Machine

答案 2 :(得分:1)

如果你有很多实例,那么你可能会遇到内存使用过多和启动时间慢的问题。大部分JRE是共享的,但不是所有内容,而不是一般的应用程序代码和资源。一些JRE在某种程度上解决了这个问题,例如最近版本的IBM JRE 6共享编译的应用程序代码。

如果所有代码编写得很好(例如,没有可变的静态变量(包括单例)),那么使用单个进程应该不会有问题。

答案 3 :(得分:0)

没问题。实际上我发现相反情况有点烦人 - 没有(简单)方法来限制同一台计算机中可启动实例的数量。