2023年12月15日星期五

go启动匿名函数和函数的生命周期

go启动匿名函数和函数的生命周期

启动匿名函数

func middlemain() {
	go func() {
		fmt.Println("123")
		time.Sleep(2 * time.Second)
		fmt.Println("456")
	}()
	fmt.Println("return middle func")
}

func main() {
	fmt.Println(000)
	middlemain()
	time.Sleep(5 * time.Second)
	fmt.Println(000)
}

0
return middle func
123
456
0

随着middlemain()的退出,正在运行的匿名函数不会结束

启动函数

func hello() {
	fmt.Println("123")
	time.Sleep(2 * time.Second)
	fmt.Println("456")
}

func middlemain() {
	go hello()
	fmt.Println("return middle func")
}

func main() {
	fmt.Println(000)
	middlemain()
	time.Sleep(5 * time.Second)
	fmt.Println(000)
}
0
return middle func
123
456
0

随着middlemain()的退出,正在运行的hello()不会结束

0 评论:

发表评论