Golang-goroutine02(MPG模式+设置CPU数目)

    科技2025-04-11  12

    MPG

    M —主线程 P—协程执行所需上下文 G—协程

    状态1: 1)有三个M,作用在同一个cpu并发,作用在多个cpu为并行 2)Go协程是轻量级的,可以很容易起上万个协程 状态2: M0在运行G0时被阻塞,会创建另一个M1主线程,将其余的G1,G2挂到M1下面

    设置Cpu数目

    package main import( "runtime" "fmt" ) func main(){ cpuNum := runtime.NumCPU() //看有多少个CPU fmt.Println("cpuNum = ", cpuNum) //自己设置使用几个cpu runtime.GOMAXPROCS(cpuNum-1) }

    知识点:runtime包,以及runtime.NumCPU()查看本机上有几个CPU,runtime.GOMAXPROCS(int)设置几个CPU go1.8版本之后默认程序在多核上使用

    Processed: 0.010, SQL: 8