ホームページ > バックエンド開発 > Golang > 私の Go プログラムは実際に何個のプロセッサを使用しますか?

私の Go プログラムは実際に何個のプロセッサを使用しますか?

DDD
リリース: 2024-12-06 19:13:16
オリジナル
659 人が閲覧しました

How Many Processors Does My Go Program Actually Use?

Golang プログラムで使用されるプロセッサの確認

Golang プログラムを実行する場合、使用するプロセッサの数を理解することが重要です。この記事ではこの問題に対処し、包括的な説明とコーディング ソリューションを提供します。

Runtime.GOMAXPROCS() は Go プログラムがアクセスできる論理プロセッサの最大数を制御し、Runtime.NumCPU() は使用可能な論理プロセッサを返します。 。ただし、最大並列処理は、これら 2 つの値の最小値によって制限されます。

使用中のプロセッサの数を確認するには、コードを次のように変更します。

package main

import (
    "fmt"
    "runtime"
    "sync"
)

var wg sync.WaitGroup

func doTasks() {
    fmt.Println(" Doing task ")
    for ji := 1; ji < 100000000; ji++ {
        for io := 1; io < 10; io++ {
            // Some computations
        }
    }
    runtime.Gosched()

    wg.Done()
}

func main() {
    wg.Add(1)
    runtime.GOMAXPROCS(1) // or 2 or 4
    go doTasks()
    doTasks()
    wg.Wait()

    fmt.Println("Maximum processors:", runtime.GOMAXPROCS(0))
    fmt.Println("Available logical processors:", runtime.NumCPU())
    fmt.Println("Maximum parallelism:", runtime.MaxParallelism())
}
ログイン後にコピー

この強化されたコードにより、機能が追加されます。 Runtime.GOMAXPROCS()、Runtime.NumCPU()、および Runtime.MaxParallelism() の値を表示し、プログラムのプロセッサを明確に表示します。使用法。

以上が私の Go プログラムは実際に何個のプロセッサを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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