golang-study/base/goroutine/gomaxprocs/main.go
2021-11-09 00:59:23 +08:00

44 lines
574 B
Go

package main
import (
"fmt"
"runtime"
"sync"
)
var wg = new(sync.WaitGroup)
func a() {
defer func() {
wg.Done()
}()
for i := 0; i < 10; i++ {
fmt.Printf("A: %d\n", i)
}
}
func b() {
defer func() {
wg.Done()
}()
for i := 0; i < 10; i++ {
fmt.Printf("B: %d\n", i)
}
}
func main() {
// goroutine 初始栈大小为2k
// 设置 最大 线程数
// 默认为 CPU 逻辑核心数
fmt.Printf("CPU 逻辑核心数: %d\n", runtime.NumCPU())
// 线程过多会增加 上下文切换负担
runtime.GOMAXPROCS(1)
wg.Add(2)
go a()
go b()
wg.Wait()
}