Junior — Middle
Is het mogelijk om de verdeling van processorcores te controleren voor het uitvoeren van goroutines?
sobes.tech AI
Antwoord van AI
In Go kun je het aantal systeemthreads dat wordt gebruikt voor het uitvoeren van goroutines controleren met de functie runtime.GOMAXPROCS(n). Deze functie stelt het maximale aantal threads in dat gelijktijdig Go-code kunnen uitvoeren.
Het direct koppelen van specifieke goroutines aan bepaalde CPU-kernen is echter niet mogelijk — dit wordt beheerd door de scheduler van Go en het besturingssysteem.
Voorbeeld van het instellen van het aantal threads:
package main
import (
"fmt"
"runtime"
)
func main() {
// Stel gebruik in van 4 kernen
runtime.GOMAXPROCS(4)
fmt.Println("Maximaal aantal threads:", runtime.GOMAXPROCS(0))
}
Op deze manier kun je de paralleliteit beperken of verhogen, maar de exacte verdeling over de kernen niet controleren.