本篇文章内容为Go语言中 提前退出Go程的三种方式介绍及代码示例。
目录
[Return 使用示例](#Return 使用示例)
[Exit 使用示例](#Exit 使用示例)
[Goexit 使用示例](#Goexit 使用示例)
提前退出go程方式
GOEXIT:提前退出当前go程
return:返回当前函数
exit : 退出当前进程
Return 使用示例
在子go程中的匿名函数中使用return后,会返回子go程中,继续向下执行。
示例如下:
Go
package main
import (
"fmt"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go进程内部函数!")
return // 返回当前函数
}()
fmt.Println("子进程结束!")
}()
fmt.Println("这是主go程!")
time.Sleep(3 * time.Second)
fmt.Println("结束!")
}
运行结果:
bash
这是主go程!
这是子go进程内部函数!
子进程结束!
结束!
Exit 使用示例
在子go程中的匿名函数中使用exit后,会退出当前执行子go进程,不在继续打印。
示例如下:
Go
package main
import (
"fmt"
"os"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go进程内部函数!")
// return // 返回当前函数
os.Exit(-1) // 退出进程
}()
fmt.Println("子进程结束!")
}()
fmt.Println("这是主go程!")
time.Sleep(3 * time.Second)
fmt.Println("结束!")
}
运行结果:
bash
这是主go程!
这是子go进程内部函数!
exit status 0xffffffff
Goexit 使用示例
在子go程中的匿名函数中使用goexit后,会退出当前的子进程执行。
示例如下:
Go
package main
import (
"fmt"
//"os"
"runtime"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go进程内部函数!")
// return // 返回当前函数
// os.Exit(-1) // 退出当前子go进程
runtime.Goexit() //
}()
fmt.Println("子进程结束!")
}()
fmt.Println("这是主go程!")
time.Sleep(3 * time.Second)
fmt.Println("结束!")
}
不会打印,提前退出当前go程。
执行结果:
bash
这是主go程!
这是子go进程内部函数!
结束!
总结
本篇文章内容为Go语言中 提前退出Go程的三种方式介绍及代码示例。