真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Golang是否支持多核cpu

Golang是否支持多核cpu?很多人都不太了解,今天小編為了讓大家更加了解Golang,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。

東安網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

Golang是否支持多核cpu

Golang能使用多核cpu嗎    

Golang能使用多核cpu。對于多核編程,go是天生支持,那么我們在什么情況下應(yīng)該用多核心來加速程序呢?

我們來看如下程序:

package main
import (
        "runtime"
        "fmt"
        "sync"
  "time"
)
//定義任務(wù)隊(duì)列
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() //任務(wù)完成,將任務(wù)隊(duì)列中的任務(wù)數(shù)量-1,其實(shí).Done就是.Add(-1)
}
func main() {
  //記錄開始時(shí)間
  start := time.Now()
        //設(shè)置最大的可同時(shí)使用的CPU核數(shù)和實(shí)際cpu核數(shù)一致
        runtime.GOMAXPROCS(1)
        for i := 1; i <= 10; i++ {
                waitgroup.Add(1) //每創(chuàng)建一個(gè)goroutine,就把任務(wù)隊(duì)列中任務(wù)的數(shù)量+1
                go xtgxiso(i)
        }
        waitgroup.Wait() //Wait()這里會(huì)發(fā)生阻塞,直到隊(duì)列中所有的任務(wù)結(jié)束就會(huì)解除阻塞 //記錄結(jié)束時(shí)間
  end :=  time.Now()
  //輸出執(zhí)行時(shí)間,單位為秒。
  fmt.Println(end.Sub(start).Seconds())
}

我們可以通過“runtime.GOMAXPROCS(1)”來設(shè)置是單核還是多核心執(zhí)行,對比結(jié)果發(fā)現(xiàn),多核明顯比單核快,所以對于CPU的運(yùn)行上,多核運(yùn)行加速效果是很明顯的。

看完上訴內(nèi)容,你們對Golang是否支持多核cpu大概了解了嗎?如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!


本文名稱:Golang是否支持多核cpu
網(wǎng)站路徑:http://weahome.cn/article/jshdgg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部