Heim  >  Artikel  >  Backend-Entwicklung  >  Kann Golang eine Multi-Core-CPU verwenden?

Kann Golang eine Multi-Core-CPU verwenden?

angryTom
angryTomOriginal
2020-03-17 16:19:233261Durchsuche

Kann Golang eine Multi-Core-CPU verwenden?

Kann Golang eine Multi-Core-CPU verwenden?

Kann Golang eine Multi-Core-CPU verwenden? Go bietet natürliche Unterstützung für Multi-Core-Programmierung. Unter welchen Umständen sollten wir also Multi-Core verwenden, um das Programm zu beschleunigen?

Verwandte Empfehlungen: Golang-Tutorial

Sehen wir uns das folgende Programm an:

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

Wir können es über „runtime.GOMAXPROCS(1)“ festlegen Single-Core- oder Multi-Core-Ausführung: Die Vergleichsergebnisse zeigen, dass Multi-Core offensichtlich schneller ist als Single-Core, sodass für den Betrieb der CPU der Beschleunigungseffekt des Multi-Core-Betriebs sehr offensichtlich ist.

PHP-Website für Chinesisch, zahlreiche Programmier-Tutorials, Datenbankverwaltungstools Navicat-Tutorial, willkommen zum Lernen!

Das obige ist der detaillierte Inhalt vonKann Golang eine Multi-Core-CPU verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn