Question

En Python, si je veux que mon serveur s’adapte bien au processeur, il est évident que j’ai besoin de générer plusieurs processus. Je me demandais lequel est le meilleur (en utilisant Twisted):

A) Le processus de gestion (celui qui détient les connexions de socket réelles) place les paquets reçus dans une file d'attente partagée (celle du module de multitraitement), et les processus de travail extraient les paquets de la file d'attente, les traitent et envoient le message. les résultats au client.

B) Le processus de gestionnaire (celui qui détient les connexions de socket réelles) lance un thread différé puis appelle la fonction apply () sur le pool de processus. Une fois que le résultat du processus de travail est renvoyé, le responsable le renvoie au client.

Dans les deux implémentations, les processus de travail utilisent des pools de threads pour pouvoir travailler sur plusieurs paquets à la fois (car il y aura beaucoup de requêtes dans la base de données).

Était-ce utile?

La solution

Je pense que B est problématique. Le thread ne s'exécute que sur un processeur et, même s'il exécute un processus, le thread est toujours en cours d'exécution. Un peut être meilleur.

Il est préférable d’essayer de mesurer les deux en termes de temps et de déterminer lequel est le plus rapide et le plus adapté. Cependant, je répète que je doute fort que B évolue bien.

Autres conseils

Je pense que " A " est la réponse que vous voulez, mais vous n’avez pas à le faire vous-même.

Avez-vous envisagé de ampoule ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top