0
我是新来golang
,我疑惑这个僵局(run here)去例行死锁?
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
c := make(chan string)
work := make(chan int, 1)
clvl := runtime.NumCPU()
count := 0
for i := 0; i < clvl; i++ {
go func(i int) {
for jdId := range work {
time.Sleep(time.Second * 1)
c <- fmt.Sprintf("done %d", jdId)
}
}(i)
}
go func() {
for i := 0; i < 10; i++ {
work <- i
}
close(work)
}()
for resp := range c {
fmt.Println(resp, count)
count += 1
}
}
这将导致恐慌,因为他产生多个工人够程 - 他们都将尝试关闭C – Crast
哦,亲爱的,当然会,谢谢! – mrd0ll4r