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程的三种方式介绍及代码示例。

相关推荐
怕浪猫2 小时前
FDE 如何正确解决现场项目工程性的问题
前端·后端·ai编程
GreenTea2 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
考虑考虑2 小时前
Java实现hmacsha256加密算法
java·后端·java ee
凤山老林3 小时前
聊聊企业级 API 安全:Spring Boot 落地 OAuth 2.1、mTLS 与接口签名防篡改
spring boot·后端·安全·oauth
言乐63 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
林鹿4 小时前
maven属性与groovy变量对照表
后端
金金计较.4 小时前
Go语言-3
java·开发语言·golang
烽火戏诸诸诸侯4 小时前
AI 让我的独门小工具焕发第二春
后端·ai编程·vibecoding
张小凡vip5 小时前
python--爬虫--经验积累的遇到的坑
开发语言·爬虫·python
狼爷5 小时前
硅谷爆火的FDE是AI新风口,还是高级外包?
后端·全栈