[GO]gomaxprocs的使用

本文通过演示不同CPU核心数量下Golang程序的并发输出效果,揭示了Golang调度器如何分配任务到不同的CPU核心上,展示了并发编程的实际运行情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package main

import (
    "runtime"
    "fmt"
)

func main() {
    n := runtime.GOMAXPROCS(1)//指定使用核进行运算,这个函数的返回值是当前机器的cpu个数
   fmt.Println(" n = ", n) 

for true {
    go fmt.Print(
1)
    fmt.Print(
0)
  }
}

会发现打印结果里有大片的1或者0

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

那如果指定两个核呢

...
n := runtime.GOMAXPROCS(2)
...

那么结果会很不一样

1100011110010111001100101100010000001001111111000000011111110000011111100100001111100100000111111001011000000000000000000000000000000000000000000

可以看得出来并发的时间片出让明显快了很多

那么4核

n := runtime.GOMAXPROCS(4)
...
for true {
go fmt.Print(1)
go fmt.Print(2)
go fmt.Print(3)
fmt.Print(0)
}
...

虽然看不出来啥,

233123230003212132200000311131231231200023312231310002011331313330002222212132000003123131231231200123112323001131230002

转载于:https://www.cnblogs.com/baylorqu/p/9672432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值