多类加载器的单例模式

Posted jun10ng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多类加载器的单例模式相关的知识,希望对你有一定的参考价值。

对于java而言,进程内唯一(线程唯一)是对同一个类加载器而言的。

在一些情况下我们可能会有两个类加载器,这个时候的单例模式并不能保证单例。所以在这种非单一类加载器的情况下,我们需要指定类加载器来执行单例类的创建。

见下方代码:

private static Class getClass(String classname) throws ClassNotFoundException {
      
      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
      if(classLoader == null)
        // 如果当前线程的classLoader为null,则指定单例模式的类加载器加载
        classLoader = Singleton.class.getClassLoader();
      return (classLoader.loadClass(classname));
   }
}

以上是关于多类加载器的单例模式的主要内容,如果未能解决你的问题,请参考以下文章

C# 两行代码实现 延迟加载的单例模式(线程安全)

14-java的单例设计模式详解

性能比较好的单例写法

Java中的单例模式

我理解的单例设计模式

Python中的单例模式