golang goroutine顺序输出

golang goroutine顺序输出

range字符串,使用goroutine打印,因为goroutine随机执行

for _, v := range str {
        go func() {
            fmt.Println(string(v))
        }()
}

输出:

5
5
5
5
5

可以使用chan顺序输出

    for  _, c := range str{
        ch := make(chan rune)
        go func(ch <-chan rune) {

            key := <-ch
            fmt.Println(string(key))

        }(ch)
        ch <- c
    }

输出:

1
2
3
4
5

你可能感兴趣的:([Golang])