用 goroutine 写了 3 种,得到的结果都不一样,不知道为什么?

riskers · · 1048 次点击
chan缓存可以实现,也可以通过for,去控制循环次数去开协程,但是用缓存的话,在这个场景下,是没用的,他控制的数量在于for循环的次数
#4
更多评论
第一个没看出什么问题 第二个其实都相当于顺序执行了,goroutine都没啥用。 你这个情况直接加个chan缓存就可以了,同时做多个处理。
#1
我按照第一种请求的话,出现 panic 是 `no free connections available to host`,可能是因为我用的是 fasthttp。 我换成 go 的 http 就可以了,但是有一事不解,我用第一种方法写,相当于我同时开了 8000 多个协程,我感觉可能会崩掉(因为只是在我本地使用)。怎么能方便地去控制开协程的个数呢?比如我一次只想开 100 个协程。直接 chan 缓存成 100 就行了么? 望解答
#2