我正在制作一个 Golang 程序,它需要下载N 个文件,然后对每个文件执行一些任务。特别是每个单个 SWF 文件都有一个操作管道:发出 http get 请求以获取文件保存到本地将其转换为 PNG按顺序执行可能会非常低效。用N 个goroutines做这件事也可能不是最优的。如何选择/限制 goroutine 的数量?
1 回答
DIEA
TA贡献1820条经验 获得超2个赞
一个够程是轻量级的设计:
goroutine 有一个简单的模型:它是一个与同一地址空间中的其他 goroutine 并发执行的函数。它是轻量级的,成本比分配堆栈空间多一点。并且堆栈开始时很小,因此它们很便宜,并且通过根据需要分配(和释放)堆存储来增长。
限制不在于你生成的 goroutine 的数量,而在于它们做了什么。
在您的情况下,同时打开文件(以写入下载的流)可以满足每个进程或一般情况下打开文件数的限制
- 1 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消