首页 >后端开发 >Golang > 正文

详解Golang cpu的使用设置

转载2021-06-11 11:54:280214
下面由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核数。

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

php中文网最新课程二维码

声明:本文转载于:cnblogs,如有侵犯,请联系admin@php.cn删除

  • 相关标签:Golang
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • Go语言教程手册Go语言教程手册
  • go语言基础与基本函数go语言基础与基本函数
  • 视频教程分类