Slide 14
Slide 14 text
̏ஈ֊ Ϋϩʔϥͷ༷
14
cpus := runtime.NumCPU()
runtime.GOMAXPROCS(cpus)
c := make(chan bool, cpus)
for i := 0; i < ֊; i++ {
var wg sync.WaitGroup
for _, p := range webϖʔδͷྻ {
c <- true
wg.Add(1)
go func(p Page) {
defer func() { <-c }()
// ΫϩʔϦϯά
wg.Done()
}(p)
}
wg.Wait()
}
goroutineΛ༻͍Δ͜ͱͰൺֱత؆୯ʹ
ฒྻॲཧΛ࣮Ͱ͖Δ
※ go func()ͷॲཧ͕͍ܰͱ
Ή͠Ζ͘ͳΔՄೳੑ͋Δ
※ ੜ͢Δgoroutineͷ੍ޚ͠ͳ͍ͱ
Ϋϩʔϧ͢Δϖʔδ͕ଟ͍߹panic͢Δ͜ͱ͋Δ
͔͠͠