Newer
Older
01_hello / goroutine / select.go
yhornisse on 9 Oct 2021 459 bytes add select sample
package main

import (
	"fmt"
)

func main() {
	ch1 := make(chan int)
	ch2 := make(chan int)
	for i := 0; i < 5; i++ {
		if i % 2 == 0 {
			go func(i int) {
				ch1 <- i
			}(i)
		} else {
			go func(i int) {
				ch2 <- i
			}(i)
		}
	}

	cnt := 0
	df := 0
	for cnt < 5 {
		select {
		case <- ch1:
			fmt.Printf("ch1 received\n")
			cnt++
		case v := <- ch2:
			fmt.Printf("ch2: %d\n", v)
			cnt++
		default:
			df++
		}
	}
	fmt.Printf("default: %d\n", df)
}