ClassLoader应该是线程安全的吗?

时间:2011-03-09 20:58:45

标签: java classloader

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

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

1 个答案:

答案 0 :(得分:2)

ClassLoader.loadClass()已同步。

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