Vert-filetage et de fil en Python

Comme Wikipédia membres:

Fils verts émuler les environnements multi-threads sans compter sur n'importe quel système d'exploitation natif de capacités, et ils sont gérés dans l'espace utilisateur au lieu de l'espace noyau, leur permettant de travailler dans des environnements qui n'ont pas de support natif des threads.

Python fils sont mis en œuvre comme pthreads (kernel threads),
et à cause de la global interprète de verrouillage (GIL), un Python processus s'exécute uniquement un seul thread à la fois.

[QUESTION]
Mais dans le cas de Green-threads (ou soi-disant greenlet ou tasklets),

  1. Ne le GIL affectent-ils? Peut-il y avoir plus d'un greenlet
    cours d'exécution à un moment?
  2. Quels sont les pièges de l'utilisation greenlets ou tasklets?
  3. Si j'utilise greenlets, combien d'entre eux peut un processus peut-il gérer? (Je me demande parce que dans un seul processus, vous pouvez ouvrir des threads jusqu'à
    ulimit(-s, -v) défini dans votre *ix système).

J'ai besoin d'un peu de perspicacité, et il serait utile si quelqu'un pouvait partager leur expérience, ou me guider vers le droit chemin.

  • La réponse à tous les trois est "ça dépend de la greenlet mise en œuvre".
  • Stackless Python pénètre dans beaucoup de ces concepts. Je recommande d'obtenir une version et de faire le tutoriel sur le site officiel. Il a beaucoup de explination sur les types de questions que vous vous posez.
InformationsquelleAutor Rahul Gautam | 2012-10-06