理解 Windows 上非功能性 Goroutines 之謎
在並發領域,Goroutines 在 Go 中充當輕量級線程。然而,一些程式設計師遇到了意想不到的挑戰:goroutines 無法在 Windows 上執行。為了解開這個謎團,讓我們深入研究根本問題。
根本原因:非同步執行
與傳統執行緒不同,goroutines 是非同步執行的,這意味著程式將不等待呼叫的函式完成。這允許高效的並發,但如果主函數在 goroutine 有機會執行之前退出,則可能會導致問題。
克服執行差距
To為了確保 goroutine 有足夠的時間來完成其操作,包含延遲程序終止的機制至關重要。常見的方法是引入「睡眠」語句,該語句將程式執行暫停指定的持續時間。例如,以下程式碼強製程式等待 10 秒,為 goroutine 提供充足的時間來列印其輸出:
package main import ( "fmt" "time" ) func test() { fmt.Println("test") } func main() { go test() time.Sleep(10 * time.Second) }
輸出:
test
透過採用此技術,我們可以確保程式等待 goroutine 完成其執行,使我們能夠觀察預期的輸出。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3