常见的 Goroutine 泄露,你应该避免

Go 语言编写代码的最大优点之一是能够在轻量级线程,即 Goroutines 中并发运行你的代码。

然而,拥有强大的能力也伴随着巨大的责任。

尽管 Goroutines 非常方便,但如果不小心处理,它们很容易引入难以追踪的错误。

Goroutine 泄露就是其中之一。它在背景中悄悄增长,可能最终在你不知情的情况下使你的应用程序崩溃。

因此,本文主要介绍 Goroutine 泄露是什么,以及你如何防止泄露发生。

我们来看看吧!

什么是 Goroutine 泄露?

当创建一个新的 Goroutine 时,计算机在堆中分配内存,并在执行完成后释放它们。

Goroutine 泄露是一种内存泄露,当 Goroutine 没有终止并在应用程序的生命周期中被留在后台时就会发生。

让我们来看一个简单的例子。

func goroutineLeak(ch chan int) {
data :=