我正在考虑使用不同的配置文件(作为命令行参数)执行相同java二进制文件(套接字应用程序)的多个实例。 JVM是否正确处理了这种情况?换句话说,如果我没有任何公共资源(可以锁定的文件等),这种方法会产生任何问题吗?如果是这样的话,我需要小心的是什么。
答案 0 :(得分:10)
如果从命令行启动多个java实例,则会获得多个正在运行的JVM(每个实例一个)。
如果没有共享资源,您应该没有任何问题。
答案 1 :(得分:1)
正如Matthew先前所指出的,只要没有共享资源,我们就不会有任何问题。
只是为了增加一点,JVM就像一个容器,它为每次从命令行调用java时创建的java程序和JVM提供执行环境。
答案 2 :(得分:1)
如果你有很多实例,那么你可能会遇到内存使用过多和启动时间慢的问题。大部分JRE是共享的,但不是所有内容,而不是一般的应用程序代码和资源。一些JRE在某种程度上解决了这个问题,例如最近版本的IBM JRE 6共享编译的应用程序代码。
如果所有代码编写得很好(例如,没有可变的静态变量(包括单例)),那么使用单个进程应该不会有问题。
答案 3 :(得分:0)
没问题。实际上我发现相反情况有点烦人 - 没有(简单)方法来限制同一台计算机中可启动实例的数量。