Qu'est-ce qu'une Go Routine?
Maxime Guilbert
Posted on March 27, 2023
Quand on fait du développement en Go, surtout quand on a le besoin de faire des traitements rapides, on peut avoir besoin de paralléliser certains bouts de traitements. Et c'est là que les Go Routines sont utiles.
Définition
Une Go Routine est une méthode qui est exécutée sur un thread en parallèle du thread principal.
Comment l'utiliser ?
1. Déclarer la fonction qui pourra être utilisée par une Go Routine
func toto(from string) {
for i := 0; i < 3; i++ {
fmt.Println(from, ":", i)
}
}
Comme vous pouvez le constater, il ne s'agit que d'une déclaration de méthode "classique" sans rien de particulier.
2. Appeler la fonction en tant que Go Routine
Pour appeler la fonction en tant que Go Routine, il vous suffit de rajouter go
avant la déclaration de l'appel à la méthode.
// Appel de la fonction au travers d'une go routine
go toto("goroutine")
// Appel direct de la fonction toto
toto("direct")
3. Résultat
Dans l'exemple précédent, on voit que la Go Routine est appelée avant l'appel direct. Voyons ce que ça donne.
direct : 0
direct : 1
direct : 2
goroutine : 0
goroutine : 1
goroutine : 2
On peut voir que "direct" a été appelé avant "goroutine", démontrant le fait que le traitement dans la Go Routine a été fait en parallèle. En effet, l'appel à "direct" n'a pas attendu que "goroutine" soit terminé pour s'exécuter.
4. Fonctions anonymes
Avec les Go Routines, on peut créer des fonctions anonymes. Fonction qui n'ont pas de nom et qui ne peuvent être utilisées en dehors de l'endroit où elles ont été déclarées.
go func(msg string) {
fmt.Println(msg)
}("test")
L'exemple ci-dessus déclare une fonction qui attend un message à afficher, et le paramètre utilisé pour appeler cette fonction est "test".
Conclusion
En conclusion, on peut voir que les Go Routines sont un moyen simple d'effectuer des traîtements en parallèle avec Go. Dans un prochain article, on verra avec quoi on peut les utiliser pour avoir quelque chose de très puissant sans outils externes!
J'espère que ça vous aidera! 🍺
Vous voulez me supporter?
Posted on March 27, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 30, 2024