Maison >développement back-end >Golang >Pourquoi les comportements de Go Goroutine diffèrent-ils entre le terrain de jeu et l'exécution locale ?
Pour tenter de clarifier les malentendus concernant les goroutines, un utilisateur s'est tourné vers Go Playground et exécuté le code suivant :
<code class="go">package main import ( "fmt" ) func other(done chan bool) { done <- true go func() { for { fmt.Println("Here") } }() } func main() { fmt.Println("Hello, playground") done := make(chan bool) go other(done) <-done fmt.Println("Finished.") }</code>
Go Playground :
Exécution locale :
Sortie produite presque instantanément :
Hello, playground. Finished.
Go Playground :
Exécution locale :
Notez que Go Playground utilise actuellement une version mise en cache de la sortie, de sorte que les exécutions ultérieures peuvent ne pas refléter avec précision l'exécution réelle.
Comprendre l'impact de GOMAXPROCS sur l'exécution des goroutines est crucial pour la conception modèles de concurrence appropriés. Les paramètres par défaut de Go Playground peuvent ne pas toujours imiter le comportement d'une machine locale, ce qui souligne l'importance des tests sous différentes configurations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!