channel
上一篇我们了解了Go语言的goroutine,本篇来回顾下Go语言中的channel。
Channel是Go中的一个核心类型,我们可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。
Go 语言中的通道(channel)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。
channel是一种引用类型,声明通道类型的格式如下:
var 变量 chan 元素类型 var ch1 chan int // 声明一个传递整型的通道 var ch2 chan bool // 声明一个传递布尔型的通道 var ch3 chan []int // 声明一个传递int切片的通道 chan T // 可以接收和发送类型为 T 的数据 chan