runtime.GOMAXPROCS(逻辑CPU数量)
ここでの論理 CPU の数には次の値を指定できます。
- <1: 値を変更しないでください。
- =1: シングルコア実行。
- >1: マルチコアの同時実行。
一般に、runtime.NumCPU() を使用して CPU の数をクエリし、runtime.GOMAXPROCS() 関数を使用して設定できます。次に例を示します。
runtime.GOMAXPROCS(runtime.NumCPU())
Go 1.5 より前は、デフォルトでシングルコア実行が使用されていました。 Go バージョン 1.5 以降では、コードを同時に実行して CPU を最も効率的に利用できるように、上記のステートメントがデフォルトで実行されます。
GOMAXPROCS は環境変数でもあり、アプリケーションの起動前に環境変数を設定することも同じ役割を果たすことができます。