C語言中文網 目錄
首頁 > Go語言教程 > Go語言并發 閱讀:3,984

Go語言GOMAXPROCS(調整并發的運行性能)

在 Go 程序運行時(runtime)實現了一個小型的任務調度器。這套調度器的工作原理類似于操作系統調度線程,Go 程序調度器可以高效地將 CPU 資源分配給每一個任務。傳統邏輯中,開發者需要維護線程池中線程與 CPU 核心數量的對應關系。同樣的,Go 地中也可以通過 runtime.GOMAXPROCS() 函數做到,格式為:

runtime.GOMAXPROCS(邏輯CPU數量)

這里的邏輯CPU數量可以有如下幾種數值:
  • <1:不修改任何數值。
  • =1:單核心執行。
  • >1:多核并發執行。

一般情況下,可以使用 runtime.NumCPU() 查詢 CPU 數量,并使用 runtime.GOMAXPROCS() 函數進行設置,例如:
runtime.GOMAXPROCS(runtime.NumCPU())
Go 1.5 版本之前,默認使用的是單核心執行。從 Go 1.5 版本開始,默認執行上面語句以便讓代碼并發執行,最大效率地利用 CPU。

GOMAXPROCS 同時也是一個環境變量,在應用程序啟動前設置環境變量也可以起到相同的作用。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo