最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言中Goroutine的設(shè)置方式

 更新時間:2022年07月22日 08:42:45   作者:奮斗的大橙子  
這篇文章介紹了Go語言中Goroutine的設(shè)置方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、 通過runtime包進(jìn)行多核設(shè)置

1.NumCPU()獲取當(dāng)前系統(tǒng)的cpu核數(shù)

2.GOMAXPROCS設(shè)置當(dāng)前程序運(yùn)行時占用的cpu核數(shù)

版本1.6之前默認(rèn)是使用1個核,而之后是全部使用。

好玩的程序:

func doSomething() {
    var i int
    for {
        i++
    }
}

func main() {

    cpu := runtime.NumCPU()
    fmt.Println("本機(jī)cpu核數(shù):", cpu)

    fmt.Println("輸入模擬的cpu數(shù):")
    reader := bufio.NewReader(os.Stdin)
    buf, _ := reader.ReadBytes('\n')
    cmdStr := (string)(buf)
    num, err := strconv.Atoi(strings.Trim(cmdStr, "\r\n"))

    if err != nil || num > cpu || num <= 0 {
        fmt.Println("輸入的數(shù)字不正確 err:{0}", err)
        return
    }

    //設(shè)置核數(shù)
    runtime.GOMAXPROCS(num)

    for i := 0; i < 10; i++ {
        //做個死循環(huán)
        go doSomething()
    }

    fmt.Println("程序已經(jīng)開始執(zhí)行")

    time.Sleep(time.Second * 30)

    for j := 5; j > 0; j-- {
        fmt.Printf("程序倒計時退出: %ds...\n", j)
        time.Sleep(time.Second)
    }
    fmt.Printf("程序退出")
}

我的電腦是8核的,分別運(yùn)行1 2 4 8,看下cpu的使用率:

圖一 未開始運(yùn)行

圖二 運(yùn)行1個cpu

圖三 運(yùn)行2個cpu

圖四 運(yùn)行4個cpu

圖五 運(yùn)行8個cpu

二、Goroutine的調(diào)度原理復(fù)習(xí)

之前的記錄 Go語言中并發(fā)的工作原理

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • golang一些常用的靜態(tài)檢查工具詳解

    golang一些常用的靜態(tài)檢查工具詳解

    這篇文章主要介紹了golang一些常用的靜態(tài)檢查工具,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Go語言使用字符串的幾個技巧分享

    Go語言使用字符串的幾個技巧分享

    這篇文章中小編將給出一些Go語言在處理字符串方面的技巧,對大家學(xué)習(xí)Go語言具有一定的參考借鑒價值,下面一起看看吧。
    2016-09-09
  • Go語言中的網(wǎng)絡(luò)編程實(shí)現(xiàn)方式

    Go語言中的網(wǎng)絡(luò)編程實(shí)現(xiàn)方式

    Go語言作為一種簡潔而強(qiáng)大的編程語言,在網(wǎng)絡(luò)編程方面表現(xiàn)尤為出色,其內(nèi)置的net包提供了豐富的網(wǎng)絡(luò)I/O基礎(chǔ)設(shè)施,支持TCP、UDP協(xié)議,以及DNS解析等功能,本文將結(jié)合實(shí)際案例,詳細(xì)介紹Go語言在網(wǎng)絡(luò)編程中的詳細(xì)用法,需要的朋友可以參考下
    2024-10-10
  • Go語言時間處理必備技巧全解析

    Go語言時間處理必備技巧全解析

    Golang 的時間處理是 Golang 編程中的一個重要方面,它涉及到了時間類型、時間格式化、時間計算、時區(qū)處理以及定時器和超時機(jī)制等多個方面。在本文中,我們將從更深入的角度來探討 Golang 的時間處理
    2023-04-04
  • Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享

    Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享

    這篇文章主要介紹了Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • 使用Go語言解析動態(tài)JSON格式的方法

    使用Go語言解析動態(tài)JSON格式的方法

    本篇文章主要介紹了使用Go語言解析動態(tài)JSON格式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Go語言新寵:pdqsort排序算法的完美打造

    Go語言新寵:pdqsort排序算法的完美打造

    pdqsort是一種新的排序算法,特別適用于Go語言,它是由Go語言團(tuán)隊開發(fā)的,旨在提供高效且穩(wěn)定的排序算法,pdqsort采用了一種分治的策略,將數(shù)組分成小塊進(jìn)行排序,然后再合并這些塊,需要的朋友可以參考下
    2023-10-10
  • Go?處理大數(shù)組使用?for?range?和?for?循環(huán)的區(qū)別

    Go?處理大數(shù)組使用?for?range?和?for?循環(huán)的區(qū)別

    這篇文章主要介紹了Go處理大數(shù)組使用for?range和for循環(huán)的區(qū)別,對于遍歷大數(shù)組而言,for循環(huán)能比for?range循環(huán)更高效與穩(wěn)定,這一點(diǎn)在數(shù)組元素為結(jié)構(gòu)體類型更加明顯,下文具體分析感興趣得小伙伴可以參考一下
    2022-05-05
  • 淺談Go切片的值修改是否會覆蓋數(shù)組的值?

    淺談Go切片的值修改是否會覆蓋數(shù)組的值?

    本文主要介紹了淺談Go切片的值修改是否會覆蓋數(shù)組的值,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下?
    2022-02-02
  • golang中for range的取地址操作陷阱介紹

    golang中for range的取地址操作陷阱介紹

    這篇文章主要介紹了golang中for range的取地址操作陷阱,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

越西县| 左云县| 肃北| 宜君县| 莲花县| 寿宁县| 延津县| 平顶山市| 祁连县| 芒康县| 安多县| 平阴县| 澄迈县| 连江县| 买车| 陆河县| 庆安县| 宝兴县| 嵊州市| 蓬溪县| 昌邑市| 玉溪市| 宝丰县| 塔城市| 永定县| 资阳市| 故城县| 获嘉县| 渭南市| 敦化市| 潞西市| 辽宁省| 泰宁县| 嘉鱼县| 永川市| 阳泉市| 临江市| 赣榆县| 逊克县| 江西省| 松原市|