golang是如何回收goroutine的

目录

    • 1. 写在前面
    • 2. 生命周期
    • 3. 必备条件

golang是如何回收goroutine的_第1张图片

1. 写在前面

微信公众号:[double12gzh]

关注容器技术、关注Kubernetes。问题或建议,请公众号留言。

本文是基于golang 1.13

Goroutines易于创建,堆栈小,上下文切换快。由于这些原因,开发人员喜欢它们,并经常使用它们。然而,一个程序如果产生许多这样生命周期很短的goroutine,那将会花费相当多的时间来创建和销毁它们。

2. 生命周期

下面我们将以一个简单的例子来看一下,golang中是如何重用goroutine的。这个例子中的代码主要功能是实现如何计算质数

package main

// 发送一个序列2, 3, 4, ... 到channel 'ch'.
func Generate(ch chan<- int) {
	for i := 2; ; i++ {
		ch <- i // Send 'i' to channel 'ch'.
	}
}

// 把channel 'in'中的数据复制到channel 'out'。
// 删除那些可以被'prime'整除的数据。
func Filter(in <-chan i

你可能感兴趣的:(golang,golang)