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