【发布时间】:2011-03-10 14:09:50
【问题描述】:
我正在编写我的自定义类加载器,我想知道我是否应该让它成为线程安全的? 如您所见,并非所有本机 Java 类加载器都是线程安全的,只有 sun.misc.Launcher.AppClassLoader 可以(然而,我检查了 OpenJDK 源代码,而在 OpenJDK 中不是)。
java类加载器不同步有什么原因吗? 自定义类加载器应该是线程安全的吗?
【问题讨论】:
-
告诉哪个类加载器不是线程安全的(是的,一个类加载器必须是线程安全的)
-
使用 synchronized 本身并不能保证线程安全。鉴于有多少不同的 JVM 从多个线程使用相同的类加载器加载类,我会说它绝对被证明是线程安全的。但是,线程安全的实现方式可能与您期望的不同。
标签: java classloader