Goのruntime.GOMAXPROCS

538 ワード

runtime-スケジューラ
Goプログラム実行時(runtime)に小型のタスクスケジューラを実現した.
このスケジューラの動作原理はオペレーティングシステムのスケジューリングスレッドと同様であり、GoプログラムスケジューラはCPUリソースを各タスクに効率的に割り当てることができる.従来のロジックでは,開発者はスレッドプールにおけるスレッドとCPUコア数の対応関係を維持する必要がある.同様に、Go地中でもruntimeを通過することができる.GOMAXPROCS()関数は、次の形式で実行されます.
runtime.GOMAXPROCS(論理CPU数)
ここでの論理CPUの数は、以下のような数値であってもよい.
  • <1:数値は変更されません.
  • =1:シングルコア実行.
  • >1:マルチコア同時実行.

  • runtime.NumCPU--クエリー
    runtime.NumCPU()     cpu  
    runtime.GOMAXPROCS(runtime.NumCPU())----            cpu