网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Golang是否支持多核cpu-创新互联

Golang是否支持多核cpu?很多人都不太了解,今天小编为了让大家更加了解Golang,所以给大家总结了以下内容,一起往下看吧。

创新互联公司是一家专业提供广饶企业网站建设,专注与成都做网站、成都网站制作、html5、小程序制作等业务。10年已为广饶众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

Golang是否支持多核cpu

Golang能使用多核cpu吗    

Golang能使用多核cpu。对于多核编程,go是天生支持,那么我们在什么情况下应该用多核心来加速程序呢?

我们来看如下程序:

package main
import (
        "runtime"
        "fmt"
        "sync"
  "time"
)
//定义任务队列
var waitgroup sync.WaitGroup
func xtgxiso(num int) {
        for i:=1;i<=1000000000;i++{
    num = num+i
    num = num-i
    num = num*i
    num = num/i
  }
        waitgroup.Done() //任务完成,将任务队列中的任务数量-1,其实.Done就是.Add(-1)
}
func main() {
  //记录开始时间
  start := time.Now()
        //设置大的可同时使用的CPU核数和实际cpu核数一致
        runtime.GOMAXPROCS(1)
        for i := 1; i <= 10; i++ {
                waitgroup.Add(1) //每创建一个goroutine,就把任务队列中任务的数量+1
                go xtgxiso(i)
        }
        waitgroup.Wait() //Wait()这里会发生阻塞,直到队列中所有的任务结束就会解除阻塞 //记录结束时间
  end :=  time.Now()
  //输出执行时间,单位为秒。
  fmt.Println(end.Sub(start).Seconds())
}

我们可以通过“runtime.GOMAXPROCS(1)”来设置是单核还是多核心执行,对比结果发现,多核明显比单核快,所以对于CPU的运行上,多核运行加速效果是很明显的。

看完上诉内容,你们对Golang是否支持多核cpu大概了解了吗?如果想了解更多,欢迎关注创新互联行业资讯频道哦!


本文名称:Golang是否支持多核cpu-创新互联
本文来源:http://bjjierui.cn/article/dogdhs.html

其他资讯