知识卡片

协程池限制压力

专业/工作 · 489.b.2.b.1.a.1.c.1.b.2

内容

协程池用固定数量 worker 处理大批量任务,把并发度从“请求数量”改成“系统可承受数量”。它牺牲一点排队延迟,换来内存、GC 和外部资源的稳定边界。

参考来源

- 位置:《Go语言高级开发与实战》第4章《Go语言并发编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_037.html) - 结论依据:原文说明大量 goroutine 会带来内存和 GC 压力,协程池适合大批量任务,因此支撑限制压力的结论。 - 原始内容:用做任何修改。 4.4.5 协程池模式 协程池模式是常见的并发设计模式。在Go语言中goroutine已经足够轻量了,甚至net/h tt p的服务器的处理方式也是每一个请求一个goroutine,所以对比其他语言来说可能场景稍微少一些。每个goroutine的初始内存消耗都较小,但当有大批量任务的时候,需要运行很多goroutine来处理,这会给系统带来很大的内存开销和垃圾回收(Garbag