我有这段代码应该在程序退出前等待 10 秒,但它只有在我之后为它添加某种打印内容时才有效。这是为什么?我希望它等待 10 秒,而不必取消对该打印语句的注释。
func main() {
forever := make(chan bool)
go func() {
fmt.Println("why")
time.Sleep(10*time.Second)
//fmt.Println("here")
forever <- false
}()
fmt.Println("forever")
<- forever
}
这也有效:
func main() {
forever := make(chan bool)
go func() {
fmt.Println("why")
time.Sleep(10*time.Second)
forever <- false
}()
fmt.Println(<- forever)
}
以下程序在 Go playground 中运行时不会等待 10 秒:
package main
import (
"time"
)
func main() {
forever := make(chan bool)
go func() {
time.Sleep(10 * time.Second)
forever <- false
}()
<-forever
}
桃花长相依
相关分类