我有這段代碼應(yīng)該在程序退出前等待 10 秒,但它只有在我之后為它添加某種打印內(nèi)容時(shí)才有效。這是為什么?我希望它等待 10 秒,而不必取消對(duì)該打印語(yǔ)句的注釋。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 中運(yùn)行時(shí)不會(huì)等待 10 秒:package mainimport ( "time")func main() { forever := make(chan bool) go func() { time.Sleep(10 * time.Second) forever <- false }() <-forever}
1 回答

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
從技術(shù)上講,它是游樂場(chǎng)的“特色”。當(dāng)一切都被阻塞在操場(chǎng)上準(zhǔn)時(shí)等待時(shí),時(shí)間會(huì)人為地推進(jìn)直到事情解除阻塞……或者它決定事情真的陷入僵局。
- 1 回答
- 0 關(guān)注
- 114 瀏覽
添加回答
舉報(bào)
0/150
提交
取消