Comment attendre la fin de toutes les goroutines en Go sans utiliser time.Sleep ?
Bonjour à tous ! J'ai commencé à apprendre Go et j'ai rencontré un problème de synchronisation des goroutines. J'écris un programme simple qui lance plusieurs goroutines pour un traitement parallèle des données, mais je n'arrive pas à faire attendre la fonction principale leur achèvement.\n\nVoici mon code :\n\n```go\npackage main\n\nimport (\n "fmt"\n "time"\n)\n\nfunc worker(id int) {\n fmt.Printf("Worker %d started", id)\n time.Sleep(2 * time.Second) // simulation de travail\n fmt.Printf("Worker %d finished", id)\n}\n\nfunc main() {\n for i := 1; i <= 5; i++ {\n go worker(i)\n }\n // Le programme se termine immédiatement, sans attendre les goroutines\n fmt.Println("Main function ended")\n}\n```\n\nLe problème est que le programme se termine instantanément, sans attendre l'exécution des goroutines. Je sais qu'on peut utiliser `time.Sl