go 使用 goroutine channel 通信

来源:互联网 发布:如何修改淘宝店名 编辑:程序博客网 时间:2024/06/05 14:40
packagemain
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