Voir :
Voir :
Solution naïve
import ( "runtime" "time" ) func wait_all_goroutines() { for runtime.NumGoroutine() > 1 { time.Sleep(500 * time.Millisecond) } } func main() { defer fmt.Println("FIN") // Last defer defer wait_all_goroutines() ch := make(chan int) go evenSum(1, 100, ch) }
Voir :
ch1 := make(chan int) ch2 := make(chan int) go evenSum(1, 10, ch1) go squareSum(1, 10, ch2) for range 2 { select { case r1 := <-ch1: fmt.Println(r1) case r2 := <-ch2: fmt.Println(r2) } }