2
time.Sleep(time.Nanosecond)
がコメントアウトされていると、次のプログラムがハングするのはなぜですか?ゴルーチンのループがプログラムをハングする
package main
import "fmt"
import "time"
import "sync/atomic"
func main() {
var ops uint64 = 0
for i := 0; i < 50; i++ {
go func() {
for {
atomic.AddUint64(&ops, 1)
time.Sleep(time.Nanosecond)
}
}()
}
time.Sleep(time.Millisecond)
opsFinal := atomic.LoadUint64(&ops)
fmt.Println("ops:", opsFinal)
}
2つ目の質問は、なぜでrunning this program in the sandbox結果「プロセスは時間がかかりすぎた」のでしょうか?