[golang] go func
在 Golang 中,go func 用於啟動 Goroutine,也就是 Go 語言提供的輕量級並發執行單元。這允許我們讓某些函式在 背景執行 (非同步),而不會阻塞主程式。
go func 的基本語法
這段程式碼會建立一個 Goroutine,並執行匿名函式。
完整範例:
輸出:
但 Goroutine 是 非同步執行,如果 main 函式結束得太快,Goroutine 可能來不及執行。
go func 搭配參數
你可以在 go func 中傳遞參數:
或者用變數來傳遞:
⚠ 注意:Goroutine 可能會發生 變數閉包 (Closure Issue),請確保變數的值在 Goroutine 執行時不會變動。
go func 常見問題
Goroutine 太快結束,導致程式沒執行?
解法:使用 sync.WaitGroup 來確保 Goroutine 執行完畢:
如何讓多個 go func 併發執行?
解法:使用 sync.WaitGroup 來等待多個 Goroutine 完成:
輸出:
Goroutine 1 is running
Goroutine 2 is running
Goroutine 3 is running
All Goroutines Done
留言
張貼留言