您好,登錄后才能下訂單哦!
Golang是否支持多核cpu?很多人都不太了解,今天小編為了讓大家更加了解Golang,所以給大家總結了以下內容,一起往下看吧。
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大概了解了嗎?如果想了解更多,歡迎關注億速云行業資訊頻道哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。