threads démon dans un récipient d'application
-
09-09-2019 - |
Question
Je lis dans un poste au forum Smack récemment que
A partir des fils de démon dans un serveur Java EE est un grand pas de no
En gros XMPPConnection Smack démarre un thread démon pour surveiller les données entrantes Et une autre pour envoyer des données sortantes de / vers le serveur jabber respectivement. Est-il raisonnable d'utiliser des fils de démon pour écouter écriture / lit dans ce scénario?
La solution
Oui, XMPPConnection crée deux fils - l'un pour l'écoute / lecture et un pour l'écriture. Mais ceux-ci ne vivent pas aussi longtemps que l'instance XMPPConnection, que je suppose est pas pour toujours.
"A partir des fils de démon dans un serveur Java EE est un grand non non"
Êtes-vous écrit EJB compatible spécifications? Si oui, alors cela vaut. La spécification dit ne pas le faire. spécification EJB 2.1:
"Le grain de l'entreprise ne doit pas tenter pour gérer les threads. Le haricot d'entreprise ne doit pas tenter de démarrer, arrêter, suspendre ou reprendre un fil, ou modifier la priorité d'un fil ou un nom. Le grain de l'entreprise ne doit pas tenter pour gérer des groupes de discussion. "
Ou est-ce juste une webapp qui se trouve être en cours d'exécution dans Tomcat? Si tel est le cas, alors je ne vois pas de problème fondamental. Sans les fils, votre client Smack serait incapable de communiquer avec le serveur.
Autres conseils
Je l'ai utilisé API Smack pour les connexions client seulement qui sont des programmes autonomes. D'abord, vous devriez revoir le choix (ou le but) de l'API Smack dans un conteneur J2EE.