首頁 >後端開發 >Golang >如何在 Go 中實現 Goroutine 協程?

如何在 Go 中實現 Goroutine 協程?

WBOY
WBOY原創
2024-06-01 14:47:56867瀏覽

Go 中實作 Goroutine:語法:go func() { ... }。實戰案例:建立 goroutine 計算斐波那契序列,透過無緩衝通道傳送結果。

如何在 Go 中实现 Goroutine 协程?

如何在 Go 中實作 Goroutine 協程?

Golang 中的 Goroutine 是輕量級協程,可用於並發執行任務。與執行緒不同,Goroutine 非常輕量,並且由 Go 運行時管理,因此無需手動建立或管理它們。

語法

建立一個Goroutine 的語法如下:

go func() {
    // Goroutine 的代码
}()

實戰案例

以下是一個使用Goroutine 計算斐波那契序列的實戰案例:

package main

func main() {
    c := make(chan int)

    go fibonacci(10, c)

    for i := range c {
        fmt.Println(i)
    }
}

func fibonacci(n int, c chan int) {
    x, y := 0, 1
    for i := 0; i < n; i++ {
        c <- x
        x, y = y, x+y
    }
    close(c)
}

說明

  • make(chan int) 建立一個無緩衝通道c
  • go fibonacci(10, c) 啟動一個 Goroutine 來計算斐波那契序列並將其傳送到通道 c 中。
  • for i := range c 從頻道 c 接收值並列印到標準輸出。
  • close(c) 在 Goroutine 計算完成後關閉通道。

以上是如何在 Go 中實現 Goroutine 協程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn