示例如下:// hello.gopackage mainimport ( "fmt" "math/rand" "time")func main() { num := 10 ch := make(chan int, num) for i := 0; i < num; i++ { go func(ch chan int, key int) { fmt.Println("goroutine start: ", key) t := rand.Intn(5) + 1 time.Sleep(time.Duration(t) * time.Second) fmt.Println("goroutine end: ", key) // 為了不使 goroutine 阻塞,chan 創建的時候加了緩沖量 ch <- key }(ch, i) } fmt.Println("main start") for i := 0; i < num; i++ { key := <-ch fmt.Println("main get: ", key) } fmt.Println("main end")}$ go run ./hello.go main startgoroutine start: 9goroutine start: 4goroutine start: 1goroutine star