- Article qui discute de la nécessité et de la forme d’un package de coroutines pour Go
- Les coroutines sont un modèle de concurrence qui s’exécute simultanément sur des piles distinctes et permet des données partagées ainsi que des points de synchronisation explicites
- L’article fournit des exemples de coroutines en Lua et en Python, en soulignant les différences entre les deux langages
- En comparant coroutines, threads et générateurs, l’article montre que les coroutines offrent de la concurrence sans parallélisme
- L’article explore des cas d’usage des coroutines en Go, comme l’itération sur des collections génériques
- Il présente une implémentation simple de coroutines en Go à l’aide de channels et de goroutines
- Des exemples d’usage des coroutines sont fournis, notamment un parseur de chaînes et un crible de nombres premiers
- L’article se conclut par une discussion sur la possibilité d’une implémentation optimisée des coroutines dans le runtime de Go
- Les coroutines servent à créer des flux de contrôle non parallèles exécutés simultanément
- L’article explique la différence entre coroutines et goroutines
- Les coroutines peuvent servir à créer des pipelines et des filtres pour le traitement des données
- Un exemple d’implémentation d’un crible de nombres premiers avec des coroutines est présenté
- L’article aborde des améliorations possibles des coroutines, comme la gestion des paniques et l’annulation
- À travers des exemples, il montre comment les coroutines peuvent simplifier le code et en faciliter l’organisation
- L’article traite de l’implémentation des coroutines dans le langage de programmation Go
- Les coroutines sont des threads légers que l’on peut suspendre et reprendre
- L’API des coroutines inclut des fonctions comme
New, resume, cancel et yield
- Les coroutines permettent de créer une nouvelle forme de concurrence sans introduire de parallélisme
- Leur efficacité est optimisée à travers différentes implémentations
- Une implémentation fondée sur les channels prend environ 190 ns par basculement
- Une implémentation fondée sur le compilateur réduit ce temps à 118 ns par basculement
- L’implémentation la plus efficace utilise un basculement direct de coroutine et atteint 20 ns par basculement
- L’article souligne l’importance de l’optimisation des coroutines pour les performances
- Les coroutines sont utiles pour traiter progressivement des valeurs répétées
- Une implémentation des coroutines en Go offre aux développeurs un outil puissant
1 commentaires
Commentaires sur Hacker News
for.Set, qui pourraient tirer parti des itérateurs.