在程式中,將sync.WaitGroup與主函數外部定義的函數一起使用時可能會遇到問題。讓我們探討一下這種情況。
問題:
考慮以下程式碼:
在這裡,您的目標是讓程式列印以下數字: 1 到11,但有時只印1 到10。
錯誤分析:
您將sync.WaitGroup 的副本傳遞給Print 函數,該副本意味著它不會調用您在主函數中等待的sync. WaitGroup上的Done()方法。
解決方案:
解決此問題,更新程式碼如下:
這可確保Print 函數在您在主函數中等待的同一個sync.WaitGroup 上呼叫Done() 方法。
或者,您可以重構程式碼以消除 Print 函數中對sync.WaitGroup 的依賴:
以上是為什麼將sync.WaitGroup與外部函數一起使用會導致死鎖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!