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

相关推荐
uhakadotcom9 分钟前
静态代码检测技术入门:Python 的 Tree-sitter 技术详解与示例教程
后端·面试·github
幂简集成explinks15 分钟前
e签宝签署API更新实战:新增 signType 与 FDA 合规参数配置
后端·设计模式·开源
River41619 分钟前
Javer 学 c++(十三):引用篇
c++·后端
RoyLin27 分钟前
TypeScript设计模式:迭代器模式
javascript·后端·node.js
爱海贼的无处不在1 小时前
一个需求竟然要开14个会:程序员的日常到底有多“会”?
后端·程序员
IT_陈寒2 小时前
Java 性能优化:5个被低估的JVM参数让你的应用吞吐量提升50%
前端·人工智能·后端
南囝coding2 小时前
《独立开发者精选工具》第 018 期
前端·后端
绝无仅有2 小时前
数据库MySQL 面试之死锁与排查经验总结
后端·面试·github
用户384958730693 小时前
Spring Boot 集成 Redis 的完整流程
后端