我们什么时候创建同一个应用程序的多个实例?

时间:2013-06-17 21:15:54

标签: java jvm runtime

  

Java虚拟机的运行时实例具有明确的任务   生活:运行一个Java应用程序。当Java应用程序启动时,a   运行时实例诞生了。应用程序完成后,实例   死亡。如果同时启动三个Java应用程序,请执行   同样的计算机,使用相同的具体实现,你会得到   三个Java虚拟机实例。每个Java应用程序都运行   在自己的Java虚拟机中。

我正在阅读关于运行时实例的这篇文章,我只是不清楚上面的行。

public class Test1 {
    public static void main(String args[]) {
        if (args.length > 0) {
            try {
                for (int i = 0; i < args.length; i++) {
                    System.out.println("Args" + args[i]);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

当我运行上面的类时,运行时实例就诞生了。一旦完成它的操作,运行时实例就会消失。

  1. 让我们把stackoverflow.com托管在Web上的某个地方,应用程序的一个运行时实例是否足以为人们服务,或者根据负载和流量,我们创建不同的实例app在不同的服务器/计算机上。 您如何以及何时决定是否需要为同一个应用创建不同的实例?

  2. same concrete implementation在这里意味着什么?不同的具体实现怎么样?

  3. 如果我的问题在任何方面都很模糊,我很抱歉,我正在学习java,但纯粹是在HTML/CSS and JS工作。

    http://www.artima.com/insidejvm/ed2/jvm.html

3 个答案:

答案 0 :(得分:1)

非常模糊:正确答案

也是如此

2 具体实现是一个具有所有方法实现的类(与抽象类/接口不同)

1 如果在基于云的部署中需要,您可以水平拉伸应用

答案 1 :(得分:1)

个人计算机的Java机器是Word或Internet Explorer或Adobe Reader等程序。

它们的设计方式是,如果你同时运行三个Java程序,每个程序都有自己的JVM开始处理它,而不是在一个浏览器窗口中打开多个选项卡。)

instance 这个词是指操作系统将它们视为正在运行的程序,而不仅仅是硬盘上的文件,其中有大量字节恰好命名为EXE。

具体实现是指Java中的给定Java安装。 C:\Programs\Java\Java-7.1.2.3\bin\java.exe。如果您运行此程序三次,您将有三个正在运行的实例,而不仅仅是一个。

答案 2 :(得分:1)

<强> 1    您如何以及何时决定创建同一应用程序的不同实例? 例如,如果您想要一个位于用户附近的应用程序,那么您可以在亚洲的服务器上部署其中一个,在EMEA中部署一个,在美国部署。当您的用户尝试访问它时,您可以将它们发送到离您最近的服务器,并且可以获得最快速的用户体验。

现在 - 这在所有情况下都是不可能的,就像你在共享数据一样(例如,如果你是银行),那么你必须以一种方式管理数据,使其在三个实例之间保持一致你的申请。这可能是另一个问题的主题。

2:同样的具体实施。这通常在您引用抽象类时使用,并选择具有类的特定实现。例如 - 如果您有抽象类“Car”并且具有实现“Ferrari”的具体实现。

在这种情况下,它使用的是相同的术语,但其方式并不常见。当文本引用此上下文中的具体实现时,它表示它是相同的程序。即你复制并粘贴“.exe”并再次运行它。在Java术语中,您将复制相同的“.jar”文件并执行它。

但是在这种情况下,您可以在不同的计算机上执行此操作,或者如上所述,您可以在同一台计算机上运行它们,如果查看内存,您将看到三个单独的Java进程。

相关问题