在GO语言中main函数的过早退出有时是有害的,原因是main函数的退出会导致整个程序的退出,如果程序是基于协程来实现的,那么main函数的退出必然导致协程无法执行完成而退出,从而导致程序出现非预期的结果。
因此,在很多时候我们是不希望main函数提前退出的。下面几种方式可以阻止main函数提前退出。
方式一
func main() {
defer func() {
for {}
}()
}
方式二
func main() {
defer func() {
<- make(chan bool)
}()
}
方式三
func main() {
defer func() {
select{}
}()
}
版权声明:本文为shanxuanang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。