欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

版本1.6之前默認是使用1個核,而之后是全部使用。

好玩的程序:

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

func main() {

    cpu := runtime.NumCPU()
    fmt.Println("本機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核的,分別運行1 2 4 8,看下cpu的使用率:

圖一 未開始運行

圖二 運行1個cpu

圖三 運行2個cpu

圖四 運行4個cpu

圖五 運行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)文章

  • Go語言實現(xiàn)常見限流算法的示例代碼

    Go語言實現(xiàn)常見限流算法的示例代碼

    計數(shù)器、滑動窗口、漏斗算法、令牌桶算法是我們常見的幾個限流算法,本文將依次用Go語言實現(xiàn)這幾個限流算法,感興趣的可以了解一下
    2023-05-05
  • 一文帶你掌握Golang基礎(chǔ)之通道

    一文帶你掌握Golang基礎(chǔ)之通道

    在Java中,多線程之間的通信方式有哪些?記得嗎?Java多線程間通信的解決方案有很多種,比如:synchronized。在go中,就一種:通道,文中介紹的非常詳細,感興趣的同學(xué)可以參考下
    2023-05-05
  • 一文帶你了解Go語言中鎖特性和實現(xiàn)

    一文帶你了解Go語言中鎖特性和實現(xiàn)

    Go語言中的sync包主要提供的對并發(fā)操作的支持,標(biāo)志性的工具有cond(條件變量)?once?(原子性)?還有?鎖,本文會主要向大家介紹Go語言中鎖的特性和實現(xiàn),感興趣的可以了解下
    2024-03-03
  • go語言調(diào)用其他包中的函數(shù)簡單示例

    go語言調(diào)用其他包中的函數(shù)簡單示例

    這篇文章主要給大家介紹了關(guān)于go語言調(diào)用其他包中的函數(shù)的相關(guān)資料,文中還介紹了Go語言同一個包中不同文件之間函數(shù)調(diào)用的相關(guān)問題,需要的朋友可以參考下
    2023-01-01
  • Go?interface{}?轉(zhuǎn)切片類型的實現(xiàn)方法

    Go?interface{}?轉(zhuǎn)切片類型的實現(xiàn)方法

    本文主要介紹了Go?interface{}?轉(zhuǎn)切片類型的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 關(guān)于go-micro與其它gRPC框架之間的通信問題及解決方法

    關(guān)于go-micro與其它gRPC框架之間的通信問題及解決方法

    在之前的文章中分別介紹了使用gRPC官方插件和go-micro插件開發(fā)gRPC應(yīng)用程序的方式,都能正常走通。不過當(dāng)兩者混合使用的時候,互相訪問就成了問題,下面通過本文給大家講解下go-micro與gRPC框架通信問題,一起看看吧
    2022-04-04
  • Golang信號處理及如何實現(xiàn)進程的優(yōu)雅退出詳解

    Golang信號處理及如何實現(xiàn)進程的優(yōu)雅退出詳解

    這篇文章主要給大家介紹了關(guān)于Golang信號處理及如何實現(xiàn)進程的優(yōu)雅退出的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Go日常開發(fā)常用第三方庫和工具介紹

    Go日常開發(fā)常用第三方庫和工具介紹

    這篇文章主要介紹了Go日常開發(fā)常用第三方庫和工具介紹,主要有web開發(fā)、數(shù)據(jù)庫開發(fā)、Redis開發(fā)需要的朋友可以參考下
    2022-11-11
  • GoFrame實現(xiàn)順序性校驗示例詳解

    GoFrame實現(xiàn)順序性校驗示例詳解

    這篇文章主要為大家介紹了GoFrame實現(xiàn)順序性校驗示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Golang?中的?條件變量(sync.Cond)詳解

    Golang?中的?條件變量(sync.Cond)詳解

    這篇文章主要介紹了Golang?中的?條件變量(sync.Cond)詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12

最新評論