Sobes.tech
Junior — Middle

Ist es möglich, die Verteilung der Prozessor-Kerne für die Ausführung von Goroutines zu steuern?

sobes.tech KI

Antwort von AI

In Go kannst du die Anzahl der Betriebssystem-Threads, die zur Ausführung von Goroutines verwendet werden, mit der Funktion runtime.GOMAXPROCS(n) steuern. Diese Funktion legt die maximale Anzahl der Threads fest, die gleichzeitig Go-Code ausführen dürfen.

Direkt bestimmte Goroutines an bestimmte CPU-Kerne zu binden, ist jedoch nicht möglich — dies wird vom Scheduler von Go und dem Betriebssystem verwaltet.

Beispiel für die Einstellung der Thread-Anzahl:

package main

import (
    "fmt"
    "runtime"
)

func main() {
    // Verwendung von 4 Kernen festlegen
    runtime.GOMAXPROCS(4)
    fmt.Println("Maximale Anzahl der Threads:", runtime.GOMAXPROCS(0))
}

Auf diese Weise kannst du die Parallelität einschränken oder erhöhen, aber die genaue Verteilung auf die Kerne lässt sich nicht kontrollieren.