並行処理スピードアップコンテスト
https://go-workshop-conference.connpass.com/event/375456/ に参加
https://github.com/nnnkkk7/go-concurrency-workshop?tab=readme-ov-file
/icons/hr.icon
sync.WaitGroupを使用してgorutineの終了を待つ
Go 1.25からはWaitGroup.Goを使うのが便利
https://pkg.go.dev/sync#WaitGroup.Go
WaitGroup.AddとWaitGroup.Doneの書き忘れを防ぐ
go func()の記述も不要で可読性も上がる
code:go
var wg sync.WaitGroup
// AddとDone
wg.Add(1)
go func() {
defer wg.Done()
processFile(f)
}()
// Go
wg.Go(func() {
processFile(f)
})
runtime.GOMAXPROCS()の引数が0の場合、runtime.NumCPU()の値になる
https://pkg.go.dev/runtime#hdr-Default-GOMAXPROCS
https://wa3.i-3-i.info/word18079.html