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