当前位置: 首页 > 工具软件 > chan > 使用案例 >

Go关键字--chan

孟修竹
2023-12-01

chan

chan又称之为通道,形式类似于管道,内容从一头被送进去,从另一头被读取出来。下边来介绍定义通道的方法:

var 变量名 chan dataType

定义通道时,需要指定数据类型,就是只允许这个指定数据类型的变量通过这个通道。

初始化通道

golang中在初始化通道类型变量时,可以将通道分为两种情况,一种是带缓冲的通道,另一种是不带缓冲的通道。
下边来介绍下两种情况的初始化方法:

// 初始化不带缓冲的通道,通道中数据类型是int
var ch1 = make(chan int)

// 初始化带10个缓冲的通道,通道中数据类型是string
var ch2 = make(chan string,10)

还有一种写法是,定义并初始化通道,

// 定义通道,并给通道初始化8个缓冲
ch3 := make(chan int ,8)

// 定义通道,并初始化为不带缓冲通道
ch4 := make(chan string)

通道赋值

对通道的读取和写入都可能进入阻塞状态。

  1. 不带缓冲的通道,在写入时,就会发生阻塞,直到通道中信息被读取后,才会结束阻塞。
  2. 带缓冲的通道,每次向通道中写入一次信息,通道长度就会加1,每成功从通道读取一次信息,通道长度减1。如果通道长度等于通道缓冲长度时,向通道继续写入信息会使程序阻塞;如果通道长度小于通道
 类似资料: