golang进程权限调度包runtime三大函数:
1)Gosched:让出cpu时间片,让出当前goroutine的执行权限,调度器安排其它等待的任务运行,在下次某个时候从该位置恢复执行
2)Goexit:立即终止当前goroutine,终止前会先执行defer语句,不能再主函数调用run.Goexit,否则会panic
3)GOMAXPROCS:用来设置可以并行计算的cpu核数最大值,并返回之前的值,默认值和cpu逻辑个数相同
func maxProcsTest() {
fmt.Println(runtime.GOMAXPROCS(1))
//fmt.Println(runtime.GOMAXPROCS(4))
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("111", i)
}
}()
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("222", i)
}
}()
go func() {
for i := 1; i <= 5; i++ {
fmt.Println("333", i)
}
}()
time.Sleep(3* time.Second)
}
输出:
windows查看cpu核数和逻辑cpu个数