golang 的runtime机制
runtime负责管理任务调度,垃圾收集与运行环境。
同时go提供了一些高级的功能,人哦goroutine,channel以及gc,这些高级功能需要runtime的支持。runtime和用户编译后的代码被linker静态链接起来,形成可执行文件。这个文件从操作系统角度来说是可执行文件。从运行角度说,这个文件由用户代码和runtime组成。runtime通过接口函数调用来管理goroutine,channel以及一些高级功能。从用户代码发起的调用操作系统API的调用都会被runtime拦截。
go runtime的一个重要组成部分是goroutine scheduler。负责追踪,调度每个goroutine运行,实际上是从应用程序的process所属的thread pool中分配一个Thread来执行这个goroutine。因此和jvm中的java thread和os thread映射概念类似,每个goroutine只有分配到一个os thread才能运行。
到此这篇关于“golang 的runtime机制”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
golang 的runtime机制
golang runtime 简析
golang 原子计数器
Go 语言传统的同步 goroutine 的机制
Goroutine的调度分析(一)
Golang同步机制的实现
Go的隐秘世界:一个Goroutine要几个Thread
goroutine/Gosched/Goexit/GOMAXPROCS
goroutine
recover 没有捕获异常_GO语言异常处理机制panic和recover分析