go 中函数与 goroutine 存在父子关系,父 goroutine 创建子 goroutine,子 goroutine 可以访问父 goroutine 的变量但不反之。创建子 goroutine 使用 go 关键字,子 goroutine 通过匿名函数或命名的函数执行。父 goroutine 可以通过 sync.waitgroup 等待子 goroutine 完成,以确保在所有子 goroutine 完成之前不会退出程序。
Go 语言函数与 goroutine 的父子关系
Go 语言中,goroutine 是并发执行的函数。goroutine 之间以父子关系组织,父 goroutine 创建子 goroutine。子 goroutine 有权访问父 goroutine 的变量,但父 goroutine 无法访问子 goroutine 的变量。
创建子 goroutine
使用 go
关键字创建一个子 goroutine:
go func() { // 子 goroutine 代码 }