在 Go 中可以使用 goroutine 和函數並發控制實現並行計算,具體步驟如下:建立 goroutine,使用 go 關鍵字建立輕量級並發執行單元。使用 sync.WaitGroup 類型管理 goroutine,協調並行執行。將任務分解成多個部分,使用 goroutine 並行執行這些部分。
如何使用Go 的函數並發控制進行並行計算
並行計算是一種技術,它使程式可以同時在多個處理器或核心上執行程式碼,從而提高效能和效率。在 Go 語言中,可以透過 goroutine 和函數並發控制來實現平行計算。
Goroutine
Goroutine 是 Go 中輕量的並發執行單元。它們與線程十分相似,但更加輕量且高效。可以用go
關鍵字建立一個goroutine:
go func() { // 并发执行的代码 }
函數並發控制
函數並發控制是一種使用goroutine 並行執行多個函數的技術。這可以透過使用sync.WaitGroup
類型來實現:
import ( "sync" ) var wg sync.WaitGroup
實戰案例
##考慮一個計算100 個數字斐波那契數列的程式.我們可以使用函數並發控制來將此任務分成多個部分,並並行執行它們:func fib(n int) int { if n < 2 { return n } return fib(n-1) + fib(n-2) } func main() { var results []int n := 100 wg.Add(n) for i := 0; i < n; i++ { go func(i int) { results[i] = fib(i) wg.Done() }(i) } wg.Wait() fmt.Println(results) }
fib 函數計算斐波那契數列,
main 函數建立100 個goroutine 來並行計算斐波那契數,並使用
WaitGroup 等待所有goroutine 完成後再列印結果。
以上是如何使用golang函數並發控制進行平行計算的詳細內容。更多資訊請關注PHP中文網其他相關文章!