【Golang】- runtime.Goexit()

简介: 【Golang】- runtime.Goexit()

文章目录

Go语言的并发模型基本上遵照了CSP模型,goroutine间完全靠channel通信,没有像Unix进程的wait或waitpid的等待机制,也没有类似“POSIX Thread”中的pthread_join的汇合机制,更没有像kill或signal这类的中断机制。每个goroutine结束后就自行退出销毁 ,不留一丝痕迹。

/**
Goexit
调用runtime.goExit()将立即终止当前goroutine执行,调度器
确保所有已注册defer延迟调度被执行。
*/
 
package main
 
import (
  "fmt"
  "runtime"
)
 
func  main(){
  go func(){
      defer fmt.Println("A defer go")
    func(){
      defer fmt.Println("B defer go")
      runtime.Goexit()
      fmt.Println("B")
    }()
    fmt.Println("A")
      
  }()//别忘了()
  //阻塞,防止结束
  for{}
  
  
  //输出
  /**
  F:\goWorkSpace\study\05协程>go run 06_runtimeGoexit.go
  B defer go
  A defer go
  */
  
  
}

调用runtime.goExit()将立即终止当前goroutine执行,调度器确保所有已注册defer延迟调度被执行。

目录
相关文章
|
6月前
|
Java 关系型数据库 MySQL
Golang总结(1)
Golang总结(1)
|
Java Go 开发工具
MacOS Java+golang build protoc gRPC 代码生成
MACOS Java+golang GRPC 代码生成 下载protobuf git clone https://github.com/protocolbuffers/protobuf.git git checkout 3.
4281 0
|
1月前
|
Go
安装golang
golang官网——
32 1
|
5月前
|
IDE Java Go
Golang
【6月更文挑战第26天】
51 1
|
5月前
|
Go Windows
golang hello 安装环境异常【已解决】
golang hello 安装环境异常【已解决】
36 1
|
6月前
|
Go
【golang】Compile 和 MustCompile
【golang】Compile 和 MustCompile
178 0
|
6月前
|
监控 安全 Go
golang面试:golang中的context(四)
golang面试:golang中的context(四)
76 0
|
测试技术 Go
Golang中函数的使用
Golang中函数的使用
82 0
|
Go 开发工具 Windows
GoLang的安装和使用
GoLang的安装和使用
328 2