golang并发和并行

it2023-10-26  66

       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,这才真正是并行。

最新回复(0)