Go语言 之Goexit

阅读 214

2022-05-25

package main

import (
"fmt"
"runtime"
)

func main() {
go func() {
defer fmt.Println("defer A")
func() {
defer fmt.Println("defer B")
//结束goroutine
runtime.Goexit()
fmt.Println("B")
}()
fmt.Println("A")
}()

//保证main不结束执行
for {

}
//执行结果:
//defer B
//defer A

}

调用 runtime.Goexit() 将立即终止当前 goroutine 执⾏,调度器确保所有已注册 defer延迟调用被执行。




精彩评论(0)

0 0 举报