我有一个关于我之前在 Go parallel 中处理数组的附加问题:假设我的数组非常大,例如
a1 := []int{0, 1, 2, 3, 4...1000}
a2 := []int{10, 20, 30, 40, 50...10000}
and I have only 4 cpus :
runtime.GOMAXPROCS(4)
var wg sync.WaitGroup
Is the following code still correct ?
for i := 1; i < 1000; i++ {
wg.Add(1)
go func(i int) {
defer wg.Done()
x := process_array(a1[i], a2[i])
fmt.Println(a1[i], "+", a2[i], "=", x)
}(i)
}
wg.Wait()
换句话说,runtime.GOMAXPROCS(4) 将能够将线程数限制为 4,或者,会出现“累积”1000 个线程的问题?感谢您的意见 !
叮当猫咪
手掌心
相关分类