在Go語言中,可以使用通道(channel)來實現goroutine之間的通信。通道是一種并發安全的數據結構,可以在goroutine之間傳遞數據。通道可以通過make()函數創建,然后使用<-符號來發送或接收數據。
下面是一個簡單的例子,展示了如何使用通道在兩個goroutine之間傳遞數據:
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執行完成
fmt.Scanln()
}
在上面的例子中,sender函數向通道ch發送數據,receiver函數從通道ch接收數據。最后,在main函數中創建了一個通道ch,并分別啟動了sender和receiver兩個goroutine進行通信。最后,通過fmt.Scanln()等待用戶輸入,以防程序提前結束。
通過通道,在不同的goroutine之間可以安全地傳遞數據,實現了goroutine之間的通信。