˫ ʼ.bat вCPU


runtime.GOMAXPROCSԴ

package main
 
import (
"fmt"
"runtime"
"time"
)
 
func test(c chan bool, n int) {
 
x := 0
for i := 0; i < 4000000000; i++ {
x += i
}
 
fmt.Println(n, x)
 
c <- true
}
 
func main() {
//	runtime.GOMAXPROCS(1) //cpuĺ˵Ӷʵָ߲
runtime.GOMAXPROCS(runtime.NumCPU())
c := make(chan bool)
 
t1 := time.Now().Unix()
 
for i := 0; i <= 9; i++ {
go test(c, i)
}
 
var cnt int = 0
 
label:
for {
select {
case <-c:
if cnt == 9 {
break label
}
cnt += 1
default:
}
}
 
fmt.Println("main ok")
 
t2 := time.Now().Unix()
 
fmt.Println("use ", (t2 - t1), " s")
 
}
