golang中默认使用一个CPU,这时程序无法并发,只能是并发。因为始终只有一个CPU在运行。
package main
import (
"fmt"
"runtime"
)
//并发和并行
var quit chan int = make(chan int)
func loop() {
for i := 0; i < 100; i++ { //为了观察,跑多些
fmt.Printf("%d ", i)
}
quit <- 0
}
func main() {
runtime.GOMAXPROCS(2) // 最多使用2个核
go loop()
go loop()
for i := 0; i < 2; i++ {
<- quit
}
}
runtime.GOMAXPROCS(2) 设置使用2个CPU,这才真正是并行。