Sto imparando Go e volevo provare goroutine e canali.Perché la mia goroutine non è stata eseguita?
Ecco il mio codice:
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!")
}
Ed ecco il risultato:
Done!
Non capisco perché il mio goroutine non viene mai eseguito. La "Immissione della goroutine" non viene stampata e non ho alcun messaggio di errore.
Dormire funziona, ma è la soluzione peggiore possibile. È quasi inutile in situazioni reali. – Elwinar
@Elwinar, sì, ma dimostra perché l'OP non stava vedendo quello che si aspettavano. – Intermernet