2016-04-25 1 views
7

J'essaye de créer un cadre GUI qui aura une boucle d'événement. certains threads pour gérer l'interface utilisateur et d'autres pour la gestion des événements. J'ai cherché un peu et trouvé ces trois bibliothèques et je me demande lequel est préférable d'utiliser? Quels sont les avantages et inconvénients?Eventlet vs Greenlet vs gevent?

je pourrais utiliser l'un de ces trois bibliothèques ou même créer de créer quelque chose pour moi-même en utilisant des fils python , ou simultanée bibliothèque. J'apprécierais partager n'importe quel genre d'expérience, de référence et de comparaison.

+1

en lisant cet article de blog très attentivement pourrait aider https://blog.gevent.org/2010/02/27/why-gevent/ –

Répondre

7
  • Vous ne voulez certainement pas de greenlet dans ce but, car c'est une bibliothèque de bas niveau sur laquelle vous pouvez créer des bibliothèques de thread légers (comme Eventlet et Gevent).
  • Eventlet, Gevent et d'autres bibliothèques similaires fournissent un excellent jeu d'outils pour les tâches liées à l'E/S (attente de lecture/écriture sur le fichier, réseau). Probablement, la plupart de votre code GUI attendra d'autres threads (à ce stade, le thread vert/light/OS n'est pas pertinent) pour terminer, ce qui est une cible parfaite pour les bibliothèques mentionnées ci-dessus.
  • Toutes les bibliothèques de threads verts sont pour la plupart identiques. Essayez tous et décidez lequel correspond le mieux à votre projet.
  • Mais il est également possible que vous deviez extraire certaines choses dans un thread de système d'exploitation distinct en raison des exigences de la couche GUI au niveau du système d'exploitation. Considérant cela et une meilleure mise en œuvre du verrouillage de thread dans Python3, vous voudrez peut-être simplement coller avec le module natif threading si votre application n'a pas besoin de centaines de threads ou plus.