ホームページ > バックエンド開発 > Golang > GolangはマルチコアCPUを使用できますか?

GolangはマルチコアCPUを使用できますか?

angryTom
リリース: 2020-03-17 16:19:23
オリジナル
3310 人が閲覧しました

GolangはマルチコアCPUを使用できますか?

Golang はマルチコア CPU を使用できますか?

Golang はマルチコア CPU を使用できます。 Go はマルチコア プログラミングを自然にサポートしていますが、どのような状況でマルチコアを使用してプログラムを高速化する必要があるでしょうか?

関連する推奨事項: golang チュートリアル

次のプログラムを見てみましょう:

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 の動作に関しては、マルチコア動作の高速化効果が非常に明白です。

PHP 中国語 Web サイト、多数のプログラミング チュートリアル、データベース管理ツール navicat チュートリアル 、学習へようこそ!

以上がGolangはマルチコアCPUを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート