【发布时间】:2020-07-12 20:07:16
【问题描述】:
代码是这样的:
func find(start int, end int){
for i := start; i < end ; i++ {
// Do something...
}
}
func main() {
// Do something...
// For example, I know: len = 1500
// and run max goroutine are 3
// will be
go find(0, 500)
go find(500, 1000)
go find(1000, 1500)
// Do something...
}
那是我提前知道goroutines的最大线程数和“length”长度的时候。 但是如果我不知道 goroutine 可以运行多少个线程,以及“长度”的长度。有没有办法将“长度”分成相等的部分进行线程处理? 例如:length = 10,可以运行的最大 goroutine 为 2,它将长度分成 2 个线程(10/2,每个长度为 5),以便能够同时处理。
【问题讨论】:
-
我知道,我已经解决了我的问题如下,虽然性能可能会很低。开始 := len / numThread 线程 := 0;线程
标签: multithreading go max goroutine