golangプロセス特権スケジューラパッケージのランタイムの3つの主な機能です:
1) ゴスケード:CPU時間のスライスを放棄し、現在のゴルーチンの実行権限を放棄。スケジューラは、待機している他のタスクの実行を手配し、次の時点でその位置から実行を再開。
2)Goexit:直ちに現在のgoroutineを終了し、終了する前に、最初にdeferステートメントを実行し、メイン関数を呼び出すことはできません実行します。
(3) GOMAXPROCS:並列計算可能なCPUコアの最大数を設定するために使用され、返される値は、デフォルト値と同じ数のCPUロジック
func maxProcsTest() {
fmt.Println(runtime.GOMAXPROCS(1))
//fmt.Println(runtime.GOMAXPROCS(4))
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("111", i)
}
}()
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("222", i)
}
}()
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("333", i)
}
}()
time.Sleep(3* time.Second)
}
出力:
ウィンドウズビューのCPUコアと論理CPU数