golang:详解Golang cpu的使用设置

 所属分类:php教程

 浏览:186次-  评论: 0次-  更新时间:2022-09-30
描述:更多教程资料进入php教程获得。 下面由golang教程栏目给大家详解Golang cpu的使用设置,希望对需要的朋友有所帮助!以下测试,使用的Go版...
更多教程资料进入php教程获得。 下面由golang教程栏目给大家详解Golang cpu的使用设置,希望对需要的朋友有所帮助!

以下测试,使用的Go版本是1.8.3

不设置

如果没有调用runtime.GOMAXPROCS 去设置CPU,Golang默认使用所有的cpu核。

测试机器CPU有4个核,测试代码开启4个goroutine,从测试结果看4个核心全部跑满。

测试代码如下:

package main

func main()  {
	go task()
	go task()
	go task()
	go task()

	select{}

}


func task(){

	for {	
	
	}

}

设置CPU使用

func GOMAXPROCS(n int) int

GOMAXPROCS sets the maximum number of CPUs that can be executing simultaneously and returns the previous setting. If n < 1, it does not change the current setting.

设置并发执行时使用的CPU的数目

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

runtime.GOMAXPROCS(1)

设置只使用2个核心

runtime.GOMAXPROCS(2)

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

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())

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核数。

php入门到就业线上直播课:立即学习
全程直播 + 实战授课 + 边学 + 边练 + 边辅导

以上就是详解Golang cpu的使用设置的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: golang,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!