每日一个 Golang Packages 06/10 runtime
2020/06/10
- ** 今日简单认识一下 Package runtime**
package main
import (
"fmt"
"runtime"
)
func main() {
// 获取 goroot 目录
fmt.Println("GOROOT-->", runtime.GOROOT())
// 查看操作系统
fmt.Println("os/platforms-->", runtime.GOOS)
// 获取逻辑cpu 的数量
fmt.Println("CPU 数量", runtime.NumCPU())
// 设置 go 程序执行最大的 cpu 数量(1- 256)
n := runtime.GOMAXPROCS(runtime.NumCPU())
fmt.Println(n)
// gosched 让出时间片,先让别的 goroutine 执行
go func() {
for i := 0; i < 5; i++ {
fmt.Println("goroutine...")
}
fmt.Println("goroutine 开始。")
fun() // 调用 fun 函数 defer 会被执行
fmt.Println("goroutine 结束。")
}()
for i := 0; i < 5; i++ {
// 让出时间片,先让别的 goroutine 执行
runtime.Gosched()
fmt.Println("main...")
}
}
func fun() {
defer fmt.Println("defer....")
// 终止函数执行 defer 会正常执行
// return
// 终止当前的 goroutine
runtime.Goexit()
fmt.Println("fun 函数")
}
顺便佛系一下用 go 做做 leetcode 的练习题同步到了 GitHub 大家也可以看看。
一步一个脚印,稳扎稳打,重新出发!从基本的 Golang Packages 记忆开始,坚持 ing!
本作品采用《CC 协议》,转载必须注明作者和本文链接