Golang: 信道(chan)

您所在的位置:网站首页 c语言锁的类型和概念 Golang: 信道(chan)

Golang: 信道(chan)

2023-08-04 06:19| 来源: 网络整理| 查看: 265

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