La plupart des langages vous proposent leur mécanisme de mise en place des traitements concurrents. Thread, fork, coroutines sont des moyens possibles pour faire cela. Dans ce domaine, le Go innove et vous propose une nouvelle façon de mettre en place la concurrence : les goroutines.
1. Présentation
Mais que sont les goroutines ? Ce sont des closures (en français, on parlera de fermetures ou de clôtures), qui sont exécutées de manière concurrente dans le même espace mémoire. D'un point de vue de la stricte implémentation, ce sont des fonctions qui sont exécutées chacune dans un thread de votre OS.
Les fermetures
Une fermeture est créée à chaque fois qu'une fonction capture des références vers des variables libres, des variables qui ne sont pas des variables locales à cette fonction, sans être des variables globales. Une fermeture est donc créée lorsqu'une fonction f1 est définie dans le corps d'une autre fonction f et que ladite fonction f1 utilise des variables qui sont des arguments ou des variables locales de f. Le concept des fermetures est un vieux concept qui a été théorisé en 1960 et implémenté pour la première fois en 1975 dans le langage Scheme. Historiquement, l'utilisation des fermetures est plus liée aux...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première