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 協議》,轉載必須註明作者和本文連結