Go 语言中的 Channel: Goroutine 之间的通信桥梁
Go 语言中的 Channel 是一种用于在不同 Goroutine 之间进行通信的机制。可以通过 make 函数来创建一个 Channel,如下所示:
ch := make(chan int)
在这个例子中,我们创建了一个名为 ch 的 Channel,其中传输的数据类型为 int。在使用 Channel 时,我们可以使用 <- 符号来向 Channel 中发送或接收数据,如下所示:
ch <- 10 // 向 ch 中发送数据 10
x := <- ch // 从 ch 中接收数据,并将其赋值给变量 x
在这个例子中,我们向 ch 中发送了一个整数 10,并从 ch 中接收了一个整数,并将其赋值给变量 x。需要注意的是,在接收数据时,如果没有数据可用,Goroutine 会被阻塞,直到有数据可用为止。
另外,Channel 还支持使用 close 函数来关闭 Channel,如下所示:
close(ch)
在这个例子中,我们关闭了 Channel ch。需要注意的是,一旦 Channel 被关闭,就不能再向其中发送数据,但仍然可以从其中接收数据,直到 Channel 中的所有数据都被接收完为止。
原文地址: http://www.cveoy.top/t/topic/jGLO 著作权归作者所有。请勿转载和采集!