为了账号安全,请及时绑定邮箱和手机立即绑定

如何调整用于下载 N 个文件的 goroutine 的数量?

如何调整用于下载 N 个文件的 goroutine 的数量?

Go
浮云间 2021-08-16 16:22:39
我正在制作一个 Golang 程序,它需要下载N 个文件,然后对每个文件执行一些任务。特别是每个单个 SWF 文件都有一个操作管道:发出 http get 请求以获取文件保存到本地将其转换为 PNG按顺序执行可能会非常低效。用N 个goroutines做这件事也可能不是最优的。如何选择/限制 goroutine 的数量?
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

一个够程是轻量级的设计:

goroutine 有一个简单的模型:它是一个与同一地址空间中的其他 goroutine 并发执行的函数。它是轻量级的,成本比分配堆栈空间多一点。并且堆栈开始时很小,因此它们很便宜,并且通过根据需要分配(和释放)堆存储来增长。

限制不在于你生成的 goroutine 的数量,而在于它们做了什么。

在您的情况下,同时打开文件(以写入下载的流)可以满足每个进程或一般情况下打开文件数的限制


查看完整回答
反对 回复 2021-08-16
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信