python Stackless et multipaires?
-
22-08-2019 - |
Question
Alors, je suis autour avec Stackless Python et une question surgit dans ma tête, peut-être cette est « supposé » ou la connaissance « commun », mais je ne pouvais pas trouver réellement écrit nulle part sur le stackless .
Stackless Python tirer parti des processeurs multi-cœurs? En Python normal, vous avez le GIL être constamment présent et à utiliser (true) de plusieurs noyaux, vous devez utiliser plusieurs processus, est-ce vrai pour Stackless aussi?
La solution
python Stackless fait pas faire usage de tout type d'environnement multi-core, il fonctionne sur.
Ceci est une idée fausse commune au sujet Stackless, car il permet au programmeur de tirer parti de la programmation à base de fil. Pour beaucoup de gens ces deux sont étroitement liés, mais sont en fait deux choses distinctes.
Stackless interne utilise un ordonnanceur round-robin pour programmer chaque tasklet (threads micro), mais pas tasklet peut être exécuté en même temps que l'autre. Cela signifie que si l'on tasklet est occupé, les autres doivent attendre jusqu'à ce que tasklet renonce au contrôle. Par défaut, le programmateur ne s'arrêtera pas un tasklet et donner le temps processeur à l'autre. Il incombe de se fixer de nouveau à la fin de la file d'attente d'horaire du tasklet en utilisant Stackless.schedule (), ou en terminant ses calculs.
tous les tasklets sont ainsi exécutées de manière séquentielle , même lorsque les noyaux multiplpe sont disponibles.
La raison pour laquelle Stackless ne prend pas en charge multi-core est parce que cela rend les discussions beaucoup plus facile. Et cela est juste ce que stackless est tout au sujet:
Stackless Python est un amélioré version de la programmation Python la langue. Il permet aux programmeurs de récolter les avantages de base-fil programmation sans la performance et les problèmes de complexité associés avec des fils conventionnels. le microfiletages que Stackless ajoute à Python sont un pas cher et léger commodité qui peut le cas échéant correctement, donner les avantages suivants:
- Amélioration de la structure du programme.
- code plus lisible.
- Augmentation de la productivité du programmeur.
Voici un pour un peu plus d'informations sur plusieurs noyaux et stackless.