在 Go 语言中如何实现协程池
如果你熟悉 Java、Python 等编程语言,那么你一定听说或者使用过进程池或线程池。因为进程和线程不是越多越好,过多的进程或线程可能造成资源浪费和性能下降。所以池化技术在这些主流编程语言中非常流行,可以有效控制并发场景下资源使用量。
而 Go 语言则没有提供多进程和多线程的支持,仅提供了协程(goroutine)的概念。在 Go 中开启 goroutine 的成本非常低,以至于我们在绝大多数情况下开启 goroutine 时根本无需考虑协程数量,所以也就很少有人提及 Go 的协程池化技术。不过使用场景少,不代表完全没用。通过协程池我们可以来掌控资源使用量,降低协程泄漏风险。
阅读全文…