Tôi đang học Go và tôi muốn thử các kênh và kênh.Tại sao goroutine của tôi không được thực thi?
Dưới đây là mã của tôi:
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!")
}
Và đây là kết quả:
Done!
Tôi không hiểu tại sao goroutine của tôi là không bao giờ thực hiện. "Enter the goroutine" không được in và tôi không có bất kỳ thông báo lỗi nào.
Công trình ngủ, nhưng là giải pháp tồi tệ nhất có thể. Nó là bên cạnh vô dụng trong các tình huống thực tế. – Elwinar
@Elwinar, vâng, nhưng nó chứng tỏ tại sao OP không nhìn thấy những gì họ mong đợi. – Intermernet