日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

golang中的runtime

發布時間:2025/6/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang中的runtime 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Gosched

runtime.Gosched()讓出cpu的時間片,讓出當前協程的執行權限,調度器安排其他等待的任務運行,并在下次某個時間從該位置恢復執行

和協程 yield 作用類似

func main() {go func() {for i := 0; i < 5; i++ {//不一定打印5次fmt.Println("go")}}() //別忘記()for i := 0; i < 2; i++ {//讓出我的時間片runtime.Gosched()fmt.Println("hello")} }

Goexit

調用runtime.Goexit()將立即終止當前協程運行,調度器確保所有已注冊defer延遲調用執行
有時候我們會遇到這個問題

調度器確保所有已注冊defer延遲調用被執行,要在Goexit之前注冊

func test() {defer fmt.Println("test-------")return //終止使用此函數fmt.Println("1111111111") }func main() {go func() {fmt.Println("aaaa")//調用了別的函數test()//沒打印fmt.Println("bbb")}() //別忘記()for {}}

輸出

aaaa test------- bbb func test() {defer fmt.Println("test-------")//終止這個協程runtime.Goexit()//returnfmt.Println("1111111111") }func main() {go func() {fmt.Println("aaaa")//調用了別的函數test()//沒打印fmt.Println("bbb")}() //別忘記()for {}}

輸出

aaaa test-------

GOMAXPROCS

調用runtime.GOMAXPROCS()用來設置可以并行計算的cpu核數的最大值,并返回之前的值

func main() {//指定核數n := runtime.GOMAXPROCS(2)fmt.Println(n) }

多任務資源競爭

//定義一個打印機 //打印機屬于公共資源 func Printer(str string) {for _, data := range str{fmt.Printf("%c", data)time.Sleep(time.Second)}fmt.Printf("\n") }func Person1() {Printer("hello") }func Person2() {Printer("world") }func main() {//新建2個協程,代表2個人,2個人同時使用打印機go Person1()go Person2()//特意不讓主協程結束,死循環for {}}

打印會亂掉
我們如何讓他同步呢

其他的小功能

返回go的根目錄,存在GOROOT環境變量返回該環境變量,不存在返回go的根目錄

func GOROOT() string

版本

func Version() string

cpu個數

func NumCPU() int

GC

func GC()

查看時間

go build main.go time -p ./main

輸出結果:

0 9223372030412324865 1 9223372030412324865 real 1.92 // 程序開始到結束時間差 ( CPU 時間) user 3.80 // 用戶態所使用 CPU 時間片 (多核累加) sys 0.01 // 內核態所使用 CPU 時間片

命令行輸入:

GOMAXPROCS=8 time -p ./main

輸出結果:

1 9223372030412324865 0 9223372030412324865 real 1.89 user 3.76 // 雖然總時間差不多,但由 2 個核并行,real 時間自然少了許多。 sys 0.00 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的golang中的runtime的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。