我有以下内容:http : //play.golang.org/p/1aaive8KQx
当我打印 runtime.NumGoroutine() 时,我得到 3。我不应该只得到 1 吗?为什么?
package main
import (
"log"
"runtime"
"time"
)
func main() {
for i := 1; i <= 10; i++ {
ch := make(chan int, 10)
timeout := time.Tick(1 * time.Second)
for i := 1; i <= 10; i++ {
go func(i int) {
time.Sleep(2 * time.Second)
ch <- i
}(i)
}
for i := 1; i <= 10; i++ {
select {
case j := <-ch:
log.Println(j)
case <-timeout:
log.Println("timeout")
}
}
log.Println("Processes", runtime.NumGoroutine())
}
}
SMILET
相关分类