您好,登錄后才能下訂單哦!
這篇“Go語言runtime包怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go語言runtime包怎么使用”文章吧。
用來設(shè)置可以并行計算的CPU核數(shù)最大值,并返回之前的值
用于讓出CPU時間片,讓出當(dāng)前goroutine的執(zhí)行權(quán)限,調(diào)度器安排其他等待的任務(wù)運行,并在下次某個時候從該位置恢復(fù)執(zhí)行
用于立即中止當(dāng)前goroutine的運行(中止所在協(xié)程),而并不影響其他goroutine。注意!Goexit()在中止當(dāng)前協(xié)程前,還是會運行當(dāng)前goroutine還沒有執(zhí)行的defer語句,切記,不允許在主函數(shù)調(diào)用Goexit(),會導(dǎo)致panic異常
runtime調(diào)度器是非常有用的東西,關(guān)于runtime包幾個方法:
Gosched:讓當(dāng)前線程讓出cpu以讓其他線程運行,它不會掛起當(dāng)前線程,因此當(dāng)前線程未來會繼續(xù)執(zhí)行
NumCPU:返回當(dāng)前系統(tǒng)的CPU核數(shù)量
GOMAXPROCS:設(shè)置最大的可同時使用的CPU核數(shù)
Goexit:退出當(dāng)前goroutine(但是defer語句會照常執(zhí)行)
NumGoroutine:返回真該執(zhí)行和排隊的任務(wù)總數(shù)
GOOS:目標(biāo)操作系統(tǒng)
GOROOT:返回本機的GO路徑
// 定義兩個函數(shù),Test01和Test02 // Test02在Test01運行結(jié)束之后運行 // 并且Test02在i = 3的時候結(jié)束運行 //Test01 func Test01(wg *sync.WaitGroup) { defer func() { fmt.Println("Test01結(jié)束!") wg.Done() }() fmt.Println("協(xié)程01循環(huán)輸出:") for i := 0; i < 5; i++ { fmt.Println("協(xié)程01 -", i) } } // Test02 func Test02(wg *sync.WaitGroup) { defer func() { fmt.Println("Test02結(jié)束!") wg.Done() }() // 等待Test01運行結(jié)束 runtime.Gosched() fmt.Println("協(xié)程02循環(huán)輸出:") for i := 0; i < 5; i++ { if i == 3 { fmt.Println("i = 3 退出!") // 當(dāng)i = 3時執(zhí)行defer里的語句然后退出 runtime.Goexit() } fmt.Println("協(xié)程02 -", i) } } // main函數(shù)調(diào)用 func main() { var wg sync.WaitGroup wg.Add(2) go Test01(&wg) go Test02(&wg) wg.Wait() fmt.Println("This is main function!") } /*輸出: 協(xié)程01循環(huán)輸出: 協(xié)程01 - 0 協(xié)程01 - 1 協(xié)程01 - 2 協(xié)程01 - 3 協(xié)程01 - 4 Test01結(jié)束! 協(xié)程02循環(huán)輸出: 協(xié)程02 - 0 協(xié)程02 - 1 協(xié)程02 - 2 i = 3 退出! Test02結(jié)束! This is main function! */
以上就是關(guān)于“Go語言runtime包怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。