Maison > Java > javaDidacticiel > Chargeur de classe de contexte de thread ou chargeur de classe normal : quand dois-je utiliser lequel ?

Chargeur de classe de contexte de thread ou chargeur de classe normal : quand dois-je utiliser lequel ?

Patricia Arquette
Libérer: 2024-12-12 21:36:12
original
175 Les gens l'ont consulté

Thread Context Class Loader vs. Normal Class Loader: When Should I Use Which?

Chargeur de classe de contexte de thread par rapport au chargeur de classe normal

Java fournit deux mécanismes distincts pour le chargement de classe : le chargeur de classe de contexte du thread et le chargeur de classe normal. chargeur de classe.

Classe contextuelle de Thread Loader

Le chargeur de classe contextuelle est un chargeur de classe associé à chaque thread. Il est utilisé lorsqu'un thread doit charger une classe de manière dynamique, par exemple lors de l'utilisation de la réflexion ou de la désérialisation. Par défaut, le chargeur de classe contextuelle est défini sur le chargeur de classe parent du chargeur de classe qui a chargé la classe principale du thread.

Chargeur de classe normal

Le chargeur de classe normal est le chargeur de classe utilisé pour charger les classes de la classe actuelle. Il est récupéré à l'aide de la méthode getClass().getClassLoader(). En règle générale, le chargeur de classe normal est le même que le chargeur de classe contextuel, ce qui signifie qu'il s'agit du chargeur de classe parent du chargeur de classe qui a chargé la classe principale.

Quel chargeur de classe est utilisé ?

Lorsqu'un thread charge une classe dynamiquement, il utilise généralement le chargeur de classe contextuelle. Cependant, si le chargeur de classe contextuelle du thread est différent du chargeur de classe normal, celui qui est utilisé dépend du contexte.

Seulement dans des circonstances spécifiques, le chargeur de classe normal peut être utilisé à la place du chargeur de classe contextuelle. Par exemple, si le chargeur de classe contextuelle est nul, le chargeur de classe normal est utilisé.

Recommandation

Généralement, il est recommandé d'utiliser le chargeur de classe normal (c'est-à-dire , getClass().getClassLoader()) lors du chargement explicite des classes, même si le chargeur de classe contextuelle est différent. Le chargement de classe explicite doit toujours utiliser le chargeur de classe de la classe effectuant le chargement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal