golang 协程之间 传数据
在Go语言中,协程之间可以通过通道(channel)传递数据。
通道是一种先进先出的数据结构,类似于一个管道。发送方通过通道将数据发送给接收方,接收方从通道中接收数据。通道有两种类型:带缓冲通道和无缓冲通道。
带缓冲通道可以存储一定数量的数据,当通道满了时发送方会阻塞。无缓冲通道则只能存储一个数据,发送方会一直阻塞直到接收方接收到数据。
以下是一个简单的示例,演示了如何在两个协程之间传递数据:
package main
import "fmt"
func main() {
ch := make(chan int) // 创建一个无缓冲通道
go func() {
ch <- 10 // 发送数据到通道
}()
x := <-ch // 从通道中接收数据
fmt.Println(x) // 输出 10
}
在这个示例中,我们创建了一个无缓冲通道,然后在一个协程中向通道中发送了一个整数10。在main函数中,我们从通道中接收了这个整数,并将其打印出来。
原文地址: https://www.cveoy.top/t/topic/qM1 著作权归作者所有。请勿转载和采集!