Должен ли ClassLoader быть потокобезопасным? - PullRequest
6 голосов
/ 09 марта 2011

Я пишу свой собственный загрузчик классов, и мне интересно, должен ли я сделать его поточно-ориентированным?Как вы можете легко видеть, не все нативные загрузчики классов Java являются поточно-ориентированными, только sun.misc.Launcher.AppClassLoader делает (и все же я проверил источники OpenJDK, а в OpenJDK это не так).

Есть ли причина, почему загрузчики классов Java не синхронизируются?Должны ли пользовательские загрузчики классов быть потокобезопасными?

1 Ответ

2 голосов
/ 10 марта 2011

ClassLoader.loadClass() синхронизируется.

Обычно пользовательский загрузчик классов не переопределяет этот метод, но может переопределять findClass(). Поскольку findClass() вызывается loadClass и, следовательно, вызывается из синхронизированной критической секции, она сама не нуждается в синхронизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...