可以透過 channel 實現共享記憶體的 Goroutine:建立一個 channel 以指定元素類型。啟動一個 Goroutine 向 channel 寫入資料。在主 Goroutine 中使用 range 循環從 channel 讀取資料。透過關閉 channel 表示完成寫入。
如何在 Go 中建立一個共享記憶體的 Goroutine?
在 Go 中,共享記憶體是透過 channel 實現的。 channel 本質上是一個先進先出的(FIFO)佇列,用於在 Goroutine 之間傳送和接收值。
實戰案例
建立一個共享記憶體的 Goroutine 非常簡單。以下是範例程式碼:
package main import ( "fmt" "sync" ) func main() { // 创建一个 channel ch := make(chan int) // 创建 Goroutine 并启动,它将向 channel 写入数据 var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() for i := 0; i < 10; i++ { ch <- i } // 关闭 channel 表示完成 close(ch) }() // 从 channel 中读取数据 for v := range ch { fmt.Println(v) } wg.Wait() }
解釋
int
)。 go
語句啟動一個新的 Goroutine,並將一個函數當作參數傳遞。 close(ch)
關閉 channel。 透過使用 channel 進行共享內存,我們可以安全地在各個 Goroutine 之間傳遞資料。
以上是如何在 Go 中建立一個共享記憶體的 Goroutine?的詳細內容。更多資訊請關注PHP中文網其他相關文章!