如果说goroutine
是Go
程序并发的执行体,channel
就是它们之间的连接。channel
是可以让一个goroutine
发送特定值到另一个goroutine
的通信机制。
Go
语言中的通道(channel
)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out
)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明**<font style="color:#F5222D;">channel</font>**
的时候需要为其指定元素类型。
channel类型
channel
是一种类型,一种引用类型。声明通道类型的格式如下:
举几个例子:
var 变量 chan 元素类型
var ch1 chan int // 声明一个传递整型的通道
var ch2 chan bool // 声明一个传递布尔型的通道
var ch3 chan []int // 声明一个传递int切片的通道