java – ClassLoader应该是线程安全的吗?

我正在编写我的自定义类加载器,我想知道我是否应该使其成为线程安全的?
您可以很容易地看到,并非所有本机Java类加载器都是线程安全的,只有sun.misc.Launcher.AppClassLoader可以(但是,我已经检查过OpenJDK源代码,而在OpenJDK中则没有).

有没有原因java类加载器不同步?
自定义类加载器应该是线程安全的吗?

最佳答案
ClassLoader.loadClass()已同步.

通常,自定义类加载器不会覆盖此方法,但它可能会覆盖findClass().由于findClass()由loadClass调用,因此从同步的临界区调用,因此它本身不需要同步.

转载注明原文:java – ClassLoader应该是线程安全的吗? - 代码日志