i intGo语言中原生引入了协程,可以通过channel实现协程间通信。
示例代码如下:
package main import ( "fmt" ) func myFunc(c chan int, i int) { fmt.Printf("from myFunc %dn", i) c <- 1 defer close(c) } func wait(c chan int) { hasMore := true for hasMore { if _, hasMore = <-c; hasMore { } } } func main() { c := make(chan int) for i := 0; i < 100; i ++ { go myFunc(c, i) } wait(c) }