新手想请教一个协程批处理任务的问题

jayxtt999 · 2022-07-04 13:51:52 · 2040 次点击

解决办法:将 ResData = append(ResData,<- ch)操作放到for循环外。

原因:ch是无缓存的cahnnel,所以 <- ch操作会阻塞,直到ch中有数据才会执行,所以ResData = append(ResData,<- ch)会阻塞for循环,既这里的go do()并没有实现真正的并发执行,实际是串行执行操作

#6
更多评论
ch<-item
ResData = append(ResData,<- ch)

这是个无缓存的chan,必须发送/接受结束才会下一步。 可以带个缓存试试。若要存储执行结果,可以用sync.map。

#1

绝大部分时间在数据库查询上

#2