鳩舎

レースしない

Go で CPU を使い切る

単に CPU 時間を使い切るだけならすぐ出来る

package main

import (
    "runtime"
    "time"
)

func main() {
    runtime.GOMAXPROCS(runtime.NumCPU())

    for i := runtime.NumCPU(); i > 0; i-- {
        go loop()
    }

    for {
        time.Sleep(1 * time.Second)
    }
}

func loop() {
    for {
    }
}

最後の for は main groutine が死なないように待っているだけ。