聊聊协程和管道—管道

管道简介

【1】管道(channel)特质介绍:

(1)管道本质就是一个数据结构-队列

(2)数据是先进先出

(3)自身线程安全,多协程访问时,不需要加锁,channel本身就是线程安全的

(4)管道有类型的,一个string的管道只能存放string类型数据

管道入门案例

【1】管道的定义:

var 变量名 chan 数据类型

PS1:chan管道关键字

PS2:数据类型指的是管道的类型,里面放入数据的类型,管道是有类型的,int类型的管道只能写入整数int

PS3:管道是引用类型,必须初始化才能写入数据,即make后才能使用

【2】案例:

func main()  {
//定义管道 、 声明管道 ---> 定义一个int类型的管道
var intChan chan int
//通过make初始化:管道可以存放3个int类型的数据
intChan = make(chan int, 3)

//证明管道是引用类型:
fmt.Printf("intChan的值: %v n",intChan)

//向管道存放数据:
intChan