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)
}