Parallel processing test
package main
import (
"flag"
"fmt"
"sync"
)
func main() {
var nCpu int
flag.IntVar(&nCpu, "n", 0, "number of parallel procs")
flag.Parse()
fmt.Printf("nCPU=%d\n", nCpu)
wg := sync.WaitGroup{}
m := sync.Mutex{}
total := 0
for i := 0; i < nCpu; i++ {
wg.Add(1)
go func(i int) {
sum := 0
for j := 0; j < 200000000; j++ {
sum = (sum + 9876) * j % (2031 + i*i)
}
m.Lock()
total += sum
fmt.Printf("total(%d)=%d\n", i, sum)
m.Unlock()
wg.Done()
}(i)
}
wg.Wait()
fmt.Printf("%d\n", total)
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎