多个部署时创建的单例实例数

时间:2016-03-08 08:15:35

标签: java design-patterns

我想知道在同一台计算机上使用不同的输入参数多次部署包含Singleton Class的代码时,将创建多少个单例实例。 另外我想知道JVM将如何处理这种情况。在这种情况下会创建多个JVM实例吗?

3 个答案:

答案 0 :(得分:0)

多个JVM之间没有链接 - 它们之间具有完全独立的状态(除非您添加一些机制以使它们显式通信,或者访问共享状态,例如来自相同的数据库或文件)。

因此,一个JVM无法知道另一个JVM是否具有单例实例(或者甚至使用单例类)。这意味着每个JVM将有一个单例实例。

答案 1 :(得分:0)

每个唯一的类加载器都有一个Singleton类的实例,即使它们位于同一个JVM中。在您的情况下,由于同一JVM上有多个部署,因此每个部署都将使用其版本的类加载器来创建单例。因此,您将在JVM上拥有多个单例实例。

答案 2 :(得分:-2)

Singleton对象意味着只允许一个实例。所以不存在创建多个实例的问题。 如果您创建此单例类的新对象,则始终返回创建的第一个对象。