-
package main import ( "fmt" "runtime" "sync" ) func main() { n := 3 runtime.GOMAXPROCS(1) var wg sync.WaitGroup wg.Add(n) for i := 1; i <= n; i++ { go func(n int) { fmt.Println(n) wg.Done() }(i) } wg.Wait() }
执行结果
~/Go cd /root/Go;make
go build -o main .
./main
3
1
2
GOMAXPROCS:设置最大的可同时使用的 CPU 核数
因为设置了一个CPU,多以执行 的顺序是确定的
那为什么会先输出3呢,
CPU的亲缘性会选择切换少的来执行