頻道未關閉,程式停止
在使用sync.WaitGroup和頻道的Go應用程式中,您遇到了程式的問題即使等待所有goroutine 完成後也不會退出。
問題詳細資訊
您的程式碼使用 WaitGroup 來追蹤 goroutine 完成並使用通道來傳輸所取得的符號名稱。然而,fetchedSymbols 通道會無限期地保持開啟狀態,從而防止 main 中的循環終止。
解決方案
<code class="go">go func() { wg.Wait() close(fetchedSymbols) }()</code>
<code class="go">for { select { case symbol := <-fetchedSymbols: fmt.Println("fetched", symbol) } }</code>
以上是以下是一些適合您提供的文本的基於問題的標題: * **Go WaitGroup 和 Channels:為什麼我的程式不退出? ** ** * **陷入循環:如何使用 WaitGro 正確關閉 Go 中的通道的詳細內容。更多資訊請關注PHP中文網其他相關文章!