J'écris une application de serveur Java assez complexe qui a une partie significative de traitement d'arrière-plan en plus du traitement de demande-réponse habituel. Une partie du traitement en arrière-plan est faite de façon cron à l'aide du cadre Quartz. D'autres tâches sont plus à la demande - si un nouveau client se connecte, il crée un travail supplémentaire pour la mise à jour de temps en temps. Les tâches cron peuvent également être variées - certaines surveillent les applications externes, d'autres calculent les statistiques, etc.Un ou plusieurs pools de threads pour le serveur Java?
J'utilise un certain nombre de pools de threads pour exécuter toutes ces tâches avec l'idée que des tâches similaires partageront un pool de threads, mais que des tâches différentes n'en partageront pas. Par exemple, les tâches de surveillance ne seront jamais exécutées sur le pool de statistiques et les tâches statistiques ne seront jamais exécutées sur le pool de surveillance. D'autre part, je sais que certaines personnes préféreraient simplement avoir un seul pool de threads et tout faire fonctionner sans séparation.
Je me demande ce qui est considéré comme la meilleure pratique dans un tel scénario. Quels sont les avantages et les inconvénients de la séparation des pools de thread?
Cela importe-t-il même?
+ 1 question intéressante. – KLE