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