作者:mobiledu2502877427 | 来源:互联网 | 2023-05-17 21:12
目录
前言
Golang语言中有一个不得不提的工具包——runtime,提到 runtime, 大家可能会想起 java, python 的 runtime运行时库。 但是 Golang 和它们两个不太一样, java 和 python 的 runtime 是虚拟机, 而 Golang 的 runtime 和用户代码一起编译到一个可执行文件中,一起发布的。
今天,我们就来看看runtime包有哪些作用和使用场景。
正文
在 Golang 语言中,runtime调度器是非常重要的工具。
具体它都能做些什么呢,我们通过一段代码来看一下。
代码实例:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("GOROOT: ", runtime.GOROOT())
fmt.Println("操作系统: ", runtime.GOOS)
fmt.Println("逻辑CPU数量: ", runtime.NumCPU())
}
代码执行结果:
GOROOT: /usr/local/go-1.13.5
操作系统: linux
逻辑CPU数量: 2
接下来,我们继续探索 runtime 的用法,在上面代码的基础上,我们继续补充一些内容。
修改后的代码实例:
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
fmt.Println("GOROOT: ", runtime.GOROOT())
fmt.Println("操作系统: ", runtime.GOOS)
fmt.Println("逻辑CPU数量: ", runtime.NumCPU())
n := runtime.GOMAXPROCS(runtime.NumCPU())
fmt.Println("最大的可同时使用的CPU核数: ", n)
go func() {
fmt.Println("子协程开始执行...")
runtime.Goexit()
fmt.Println("子协程执行结束...")
}()
time.Sleep(3 * time.Second)
fmt.Println("主函数执行完毕")
}
代码执行结果:
GOROOT: /usr/local/go-1.13.5
操作系统: linux
逻辑CPU数量: 2
最大的可同时使用的CPU核数: 2
子协程开始执行...
主函数执行完毕
结尾
好了,今天我们对 runtime 的介绍就到这里。runtime 的更多使用方法也需要我们在具体的项目中去实践。晚安各位。