Ich lerne Go und ich wollte versuchen, goroutines und Kanäle.Warum wird meine Goroutine nicht ausgeführt?
Hier ist mein Code:
package main
import "fmt"
func main(){
messages := make(chan string,3)
messages <- "one"
messages <- "two"
messages <- "three"
go func(m *chan string) {
fmt.Println("Entering the goroutine...")
for {
fmt.Println(<- *m)
}
}(&messages)
fmt.Println("Done!")
}
Und hier ist das Ergebnis:
Done!
Ich verstehe nicht, warum meine goroutine nie ausgeführt wird. Die "Eingabe der Goroutine" wird nicht gedruckt und ich habe keine Fehlermeldung.
Schlafen funktioniert, ist aber die schlechteste Lösung. In realen Situationen ist es nahezu nutzlos. – Elwinar
@Elwinar, ja, aber es zeigt, warum das OP nicht sah, was sie erwartet hatten. – Intermernet