2010-08-09 4 views
0

Quels sont les inconvénients de créer mes propres threads dans un environnement géré comme un serveur d'applications weblogic?
J'ai toujours utilisé des threads gérés (à l'aide de l'API WorkManager) chaque fois que je travaille à l'intérieur d'un serveur d'applications.
Cependant, je ne suis pas clair sur les inconvénients ou les problèmes qui pourraient être causés par l'utilisation de threads non gérés dans le serveur de l'application.Quels sont les inconvénients de l'utilisation de threads non gérés dans un environnement géré?

Répondre

1

Vous venez de perdre les avantages d'avoir des threads gérés. Les threads gérés vous permettent d'allouer des threads à partir de pools avec une taille maximale et minimale, un taux d'incrémentation et la possibilité de mettre en file d'attente des requêtes pour chaque pool s'il est soumis à une charge importante. vous avez également l'avantage de pouvoir surveiller ces threads et contrôler leur comportement en cours d'exécution (par exemple à partir de la console Weblogic).

0

Lorsque vous exécutez une petite quantité de code dans le Thraed, et il n'attend pas d'autre thread (pas une grande utilisation dans les verrous, etc.) il n'y a aucun problème à utiliser le pool de threads.

mais quand votre fil a besoin d'exécuter une grande quantité de code, pour une longue période (par exemple, en attente sur les verrous, en attendant des ressources spécifiques), ce n'est pas une bonne pratique d'utiliser la piscine de fil, etc.

Un autre problème est que lorsque vous utilisez le pool pour les threads qui exécutent la logique principale du programme, vous risquez d'être bloqué en attendant que les autres threads se terminent. C'est une autre pratique où vous devriez gérer vos propres threads.

Questions connexes