详解Golang cpu的使用设置


当前第2页 返回上一页

例如,设置只使用1个核心

1

runtime.GOMAXPROCS(1)

设置只使用2个核心

1

runtime.GOMAXPROCS(2)

测试代码如下,只设置一个核心:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

 

import (

    "runtime"

)

 

func main()  {

    runtime.GOMAXPROCS(1)

    go task()

    go task()

    go task()

    go task()

 

    select{}

}

 

 

func task(){

    for {  

     

    }

}

有时候,我们常用到:

runtime.GOMAXPROCS(runtime.NumCPU())

1

2

func NumCPU() int

NumCPU returns the number of logical CPUs usable by the current process.

函数返回当前进程可用的逻辑CPU数目

目前测试下来,使用这个设置CPU,效果和不调用GOMAXPROCS效果一样,就是使用所有的CPU核心数。

2020.1.1 补充更新

最新测试结果:

测试机器:MAC CPU 8核
版本:go version go1.13 darwin/amd64

1.不使用GOMAXPROCS 设置CPU
8 个goroutine,可以跑满8个核, CPU使用最高达到800%

2.使用GOMAXPROCS 设置CPU
8 个goroutine
- 设置只使用1个核, CPU使用最高达到100%
- 设置只使用2个核,CPU使用最高达到200%

也就是说GOMAXPROCS可以用来设置程序使用的最多CPU核数。

以上就是详解Golang cpu的使用设置的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

golang如何实现继承?

golang的内存管理(中篇)

堆排序

golang项目如何部署到linux服务器

我用go-zero开发了第一个线上项目

go操作mysql

go语言学习4-数组类型

手撸golang 创建型设计模式 建造者模式

golang实战群:日志的处理机制

golang实现二叉树路径遍历

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...