• <bdo id='JvvDa'></bdo><ul id='JvvDa'></ul>

    <small id='JvvDa'></small><noframes id='JvvDa'>

      <legend id='JvvDa'><style id='JvvDa'><dir id='JvvDa'><q id='JvvDa'></q></dir></style></legend>

        <tfoot id='JvvDa'></tfoot>
      1. <i id='JvvDa'><tr id='JvvDa'><dt id='JvvDa'><q id='JvvDa'><span id='JvvDa'><b id='JvvDa'><form id='JvvDa'><ins id='JvvDa'></ins><ul id='JvvDa'></ul><sub id='JvvDa'></sub></form><legend id='JvvDa'></legend><bdo id='JvvDa'><pre id='JvvDa'><center id='JvvDa'></center></pre></bdo></b><th id='JvvDa'></th></span></q></dt></tr></i><div id='JvvDa'><tfoot id='JvvDa'></tfoot><dl id='JvvDa'><fieldset id='JvvDa'></fieldset></dl></div>
      2. 跨 JVM 或 Application 实例或 Tomcat 实例的单例

        时间:2023-08-25

            <small id='fuIue'></small><noframes id='fuIue'>

            <tfoot id='fuIue'></tfoot>

                <tbody id='fuIue'></tbody>
              <legend id='fuIue'><style id='fuIue'><dir id='fuIue'><q id='fuIue'></q></dir></style></legend>
                  <bdo id='fuIue'></bdo><ul id='fuIue'></ul>
                  <i id='fuIue'><tr id='fuIue'><dt id='fuIue'><q id='fuIue'><span id='fuIue'><b id='fuIue'><form id='fuIue'><ins id='fuIue'></ins><ul id='fuIue'></ul><sub id='fuIue'></sub></form><legend id='fuIue'></legend><bdo id='fuIue'><pre id='fuIue'><center id='fuIue'></center></pre></bdo></b><th id='fuIue'></th></span></q></dt></tr></i><div id='fuIue'><tfoot id='fuIue'></tfoot><dl id='fuIue'><fieldset id='fuIue'></fieldset></dl></div>
                • 本文介绍了跨 JVM 或 Application 实例或 Tomcat 实例的单例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  如果我在单个 Tomcat 实例(或任何其他服务器)上部署并运行同一应用程序的 2 个实例.然后将创建一个(单例类的)对象:

                  If I deploy and run 2 instances of same application on a single instance of Tomcat(Or any other server). Then a single object(of a Singleton class) would be created:

                  1. 跨单个 Tomcat 实例(但常见于同一应用程序的 2 个实例)或
                  2. 跨应用实例(2 个应用实例不同)

                  所以本质上我想了解每个 JVM 创建一个 Singleton 类的对象总是这样的情况吗?如果应用程序托管在 Web 服务器(或容器)上,这将如何工作.

                  So essentially I want to understand that is it always a case that a single object of Singleton class gets created per JVM? How does this works in case of application hosted on a Web server(or container).

                  推荐答案

                  如果你有一个单例类并且你在 Tomcat 中运行两个使用这个类的 webapps,这两个 webapps 将在运行 Tomcat 的 JVM 中获得这个单例的 2 个不同实例.

                  If you have a singleton class and you run two webapps that use this class in Tomcat both webapps will get 2 different instances of this singleton in JVM running the Tomcat.

                  但如果您的 webapp 将使用来自 JRE 或 Tomcat 共享库的单例,例如 Runtime.getRuntime webapps 将获得相同的 Runtime 实例.

                  But if your webapp will use a singleton from JRE or Tomcat shared libs, eg Runtime.getRuntime webapps will get the same instance of Runtime.

                  这是因为 Tomcat 为 webapps 使用单独的类加载器.当 webapp 类加载器加载一个类时,它首先尝试在 webapp 类路径中找到它,如果找不到该类,它会要求父类加载器加载该类.

                  This is because Tomcat uses individual class loaders for webapps. When a webapp class loader loads a class it first tries to find it on webapp class path, if the class is not found it asks parent class loader to load the class.

                  这篇关于跨 JVM 或 Application 实例或 Tomcat 实例的单例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:在什么情况下 finally {} 块不会执行? 下一篇:为什么是锯齿形图形?

                  相关文章

                  <legend id='YaZ1R'><style id='YaZ1R'><dir id='YaZ1R'><q id='YaZ1R'></q></dir></style></legend>

                  <small id='YaZ1R'></small><noframes id='YaZ1R'>

                  <tfoot id='YaZ1R'></tfoot>
                    <bdo id='YaZ1R'></bdo><ul id='YaZ1R'></ul>

                  1. <i id='YaZ1R'><tr id='YaZ1R'><dt id='YaZ1R'><q id='YaZ1R'><span id='YaZ1R'><b id='YaZ1R'><form id='YaZ1R'><ins id='YaZ1R'></ins><ul id='YaZ1R'></ul><sub id='YaZ1R'></sub></form><legend id='YaZ1R'></legend><bdo id='YaZ1R'><pre id='YaZ1R'><center id='YaZ1R'></center></pre></bdo></b><th id='YaZ1R'></th></span></q></dt></tr></i><div id='YaZ1R'><tfoot id='YaZ1R'></tfoot><dl id='YaZ1R'><fieldset id='YaZ1R'></fieldset></dl></div>