Heim >Backend-Entwicklung >Golang >Warum unterscheidet sich das Go-Goroutine-Verhalten zwischen dem Spielplatz und der lokalen Ausführung?
Um Missverständnisse in Bezug auf Goroutinen zu klären, wandte sich ein Benutzer an Go Playground und den folgenden Code ausgeführt:
<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:
Lokale Ausführung:
Fast eine Ausgabe produziert sofort:
Hello, playground. Finished.
Go Playground:
Lokale Ausführung:
Beachten Sie, dass der Go Playground derzeit eine zwischengespeicherte Version der Ausgabe verwendet, sodass nachfolgende Läufe möglicherweise nicht genau die tatsächliche Ausführung widerspiegeln.
Das Verständnis der Auswirkungen von GOMAXPROCS auf die Goroutine-Ausführung ist für das Design von entscheidender Bedeutung geeignete Parallelitätsmodelle. Die Standardeinstellungen auf dem Go Playground ahmen möglicherweise nicht immer das Verhalten eines lokalen Computers nach, was die Bedeutung des Testens unter verschiedenen Konfigurationen unterstreicht.
Das obige ist der detaillierte Inhalt vonWarum unterscheidet sich das Go-Goroutine-Verhalten zwischen dem Spielplatz und der lokalen Ausführung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!