Greenlet Vs. Fils

Je suis nouveau sur gevents et greenlets. J'ai trouvé quelques une bonne documentation sur la façon de travailler avec eux, mais aucun ne m'a donné de justification sur comment et quand faut-il utiliser greenlets!

  • Ce qu'ils sont vraiment bon?
  • Est-ce une bonne idée de les utiliser dans un serveur proxy ou pas?
  • Pourquoi ne pas les threads?

Ce que je ne suis pas sûr de savoir comment ils peuvent nous fournir la simultanéité si ils sont fondamentalement co-routines.

  • C'est à propos de greenthreads en Java. Ma question est sur le greenlet en Python. Ai-je raté quelque chose ?
  • Autant que je sache, les threads en python sont en fait pas vraiment concurrentes en raison de la global interprète de verrouillage. Donc, il serait résument à la comparaison entre les frais généraux de ces deux solutions. Même si je comprends qu'il y a plusieurs implémentations de python, de sorte que cela peut ne pas s'appliquer pour tous.
  • Disponible (et PyPy dès à présent) ne va pas interpréter Python (byte)du code en parallèle (c'est vraiment physiquement dans le même temps sur les deux distinctes de cœurs de PROCESSEUR). Cependant, tout un programme en Python n'est en vertu de la GIL (exemples courants sont les syscalls, y compris les e/S et fonctions C qui, délibérément la libération de la GIL), et un threading.Thread est en fait un OS thread avec toutes les ramifications. Donc, c'est vraiment pas tout à fait aussi simple que cela. Par la voie, Jython n'a pas de GIL autant que je sache, et PyPy essaie de se débarrasser de lui aussi.
InformationsquelleAutor Rsh | 2013-03-21