Go语言 提前退出go程

本篇文章内容为Go语言中 提前退出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程的三种方式介绍及代码示例。

相关推荐
小书房几秒前
Kotlin协程的运行原理
android·开发语言·kotlin·协程
隐退山林2 分钟前
JavaEE进阶:SpringIoC&DI
java·开发语言·java-ee
水煮白菜王3 分钟前
Claude Code 全方位使用手册
java·开发语言·网络
Highcharts.js3 分钟前
金融Web App中的复杂时序数据可视化:从选型到高性能实践
开发语言·金融·highcharts·实战代码·响应式图表
郝学胜-神的一滴6 分钟前
跨平台 C++ 静态库编译实战:Linux/Windows/macOS 三端统一实现
linux·开发语言·c++·windows·软件构建
xyq20249 分钟前
XHR 请求详解
开发语言
ooseabiscuit10 分钟前
Laravel10.x重磅发布:新特性全解析
android·java·开发语言·mysql
沐知全栈开发14 分钟前
JavaScript while 循环详解
开发语言
ch.ju14 分钟前
Java程序设计(第3版)第三章——数组
java·开发语言
_waylau15 分钟前
“Java+AI全栈工程师”问答01:Spring MVC登录页面错误提示
java·开发语言·vue.js·后端·spring·mvc·springcloud