Synchronisation par canaux
Contexte
Section intitulée « Contexte »Vous pouvez utiliser les canaux pour synchroniser l’exécution entre goroutines. Une réception bloquante peut attendre qu’une goroutine ait terminé.
Utiliser un canal pour attendre qu’une goroutine ait fini son travail.
Code exemple
Section intitulée « Code exemple »package main
import ( "fmt" "time")
func travailleur(fini chan bool) { fmt.Print("travaille...") time.Sleep(1 * time.Second) fmt.Println("terminé") fini <- true}
func main() { fini := make(chan bool) go travailleur(fini) <-fini // attend}travaille...terminé