package main
import (
"fmt"
)
func Cnt(ch chan int) {
ch <- 1
fmt.Println("counting")
}
func main() {
chs := make([]chan int, 20)
for i := 0; i < 20; i++ {
chs[i] = make(chan int)
go Cnt(chs[i])
fmt.Println("Count", i)
}
for i, ch := range chs {
<-ch
fmt.Println("counting", i)
}
}
运行:
go run channel.go
结果:
Count 0
Count 1
Count 2
Count 3
Count 4
Count 5
Count 6
Count 7
Count 8
Count 9
Count 10
Count 11
Count 12
Count 13
Count 14
Count 15
Count 16
Count 17
Count 18
Count 19
counting 0
counting 1
counting 2
counting 3
counting 4
counting 5
counting
counting 6
counting 7
counting 8
counting
counting
counting
counting
counting
counting
counting 9
counting 10
counting 11
counting
counting
counting
counting 12
counting 13
counting 14
counting 15
counting 16
counting
counting
counting
counting 17
counting 18
counting
counting
counting
counting
counting
counting 19