Maison >Java >javaDidacticiel >Pourquoi les threads personnalisés sont-ils déconseillés dans les conteneurs Java EE ?

Pourquoi les threads personnalisés sont-ils déconseillés dans les conteneurs Java EE ?

DDD
DDDoriginal
2024-12-09 18:41:12361parcourir

Why Are Custom Threads Discouraged in Java EE Containers?

Pourquoi décourager la génération de threads dans les conteneurs Java EE

Dans le développement Java EE, la génération de threads personnalisés dans le conteneur est généralement déconseillée. Comprendre la justification de cette interdiction permet de clarifier les pratiques de développement optimales.

Justification

Les conteneurs Java EE gèrent et surveillent étroitement les ressources au sein de leur environnement. La création de threads personnalisés perturbe cette gestion, car ils n'ont pas accès au contexte spécifique au thread essentiel pour accéder aux ressources JNDI telles que les usines de connexion JMS et les sources de données.

Approches alternatives

Malgré la nécessité de tâches asynchrones telles que tâches de distribution de courrier et de nettoyage, il existe des moyens appropriés pour y parvenir dans Java EE conteneurs :

  • Commonj WorkManager (pour WebSphere et WebLogic) : Cela fournit un mécanisme géré et surveillé pour la génération de threads avec accès au contexte requis.
  • Java EE Connector Architecture (JCA) : JCA permet l'intégration avec des adaptateurs de ressources externes, fournissant une interface pour gérer les tâches ou les événements planifiés traitement.
  • Message-Driven Beans (MDB) : Les MDB servent d'écouteurs d'événements asynchrones, offrant une solution gérée par conteneur pour le traitement des messages.
  • Servlets asynchrones : Introduits dans Java EE 6, les servlets asynchrones permettent le traitement de tâches de longue durée sans bloquer le request thread.

Évolution des meilleures pratiques

Notez que le découragement de la génération de threads dans les conteneurs Java EE était plus pertinent dans les versions antérieures (vers 2009). Les progrès de Java EE ont depuis amélioré la prise en charge du traitement asynchrone et des pools de threads gérés. Cependant, comprendre les raisons sous-jacentes du découragement historique reste précieux pour la compréhension et le respect des pratiques de développement recommandées.

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!

Déclaration:
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