共計 581 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Go 語言中,可以使用通道(channel)來實現(xiàn) goroutine 之間的通信。通道是一種并發(fā)安全的數(shù)據(jù)結(jié)構(gòu),可以在 goroutine 之間傳遞數(shù)據(jù)。通道可以通過 make() 函數(shù)創(chuàng)建,然后使用 <- 符號來發(fā)送或接收數(shù)據(jù)。
下面是一個簡單的例子,展示了如何使用通道在兩個 goroutine 之間傳遞數(shù)據(jù):
package main
import ("fmt"
)
func sender(ch chan string) {ch <- "Hello, from sender!"
}
func receiver(ch chan string) {
msg := <-ch
fmt.Println("Message received:", msg)
}
func main() {ch := make(chan string)
go sender(ch)
go receiver(ch)
// 等待 goroutine 執(zhí)行完成
fmt.Scanln()}
在上面的例子中,sender 函數(shù)向通道 ch 發(fā)送數(shù)據(jù),receiver 函數(shù)從通道 ch 接收數(shù)據(jù)。最后,在 main 函數(shù)中創(chuàng)建了一個通道 ch,并分別啟動了 sender 和 receiver 兩個 goroutine 進行通信。最后,通過 fmt.Scanln() 等待用戶輸入,以防程序提前結(jié)束。
通過通道,在不同的 goroutine 之間可以安全地傳遞數(shù)據(jù),實現(xiàn)了 goroutine 之間的通信。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完