Golang: 信道(chan) |
您所在的位置:网站首页 › c语言锁的类型和概念 › Golang: 信道(chan) |
Go 语言之所以开始流行起来,很大一部分原因是因为它自带的并发机制。 如果说 goroutine 是 Go语言程序的并发体的话,那么 channel(信道) 就是 它们之间的通信机制。channel,是一个可以让一个 goroutine 与另一个 goroutine 传输信息的通道,我把他叫做信道,也有人将其翻译成通道,二者都是一个概念。 信道,就是一个管道,连接多个goroutine程序 ,它是一种队列式的数据结构,遵循先入先出的规则。 1. 信道的定义与使用每个信道都只能传递一种数据类型的数据,所以在你声明的时候,你得指定数据类型(string int 等等) var 信道实例 chan 信道类型 复制代码声明后的信道,其零值是nil,无法直接使用,必须配合make函进行初始化。 信道实例 = make(chan 信道类型) 复制代码亦或者,上面两行可以合并成一句,以下我都使用这样的方式进行信道的声明 信道实例 := make(chan 信道类型) 复制代码假如我要创建一个可以传输int类型的信道,可以这样子写。 // 定义信道 pipline := make(chan int) 复制代码信道的数据操作,无非就两种:发送数据与读取数据 // 往信道中发送数据 pipline |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |