系列文章目录
[Go]并发goroutine
文章目录
一、channel是什么?
Channel一种数据类型。先进先出FIFO。是一种数据类型,类似于队列。用于数据同步。
二、channel使用
1.创建channel
make (chan在channel中传递的数据类型,容量),容星= 0:无缓冲channel, 容星> 0:有缓冲channel.
//创建无缓冲channel
//格式:make(chan Type, capacity)。
ch:=make(chan int)
ch1:=make(chan string,0)
//创建缓冲channel
ch2:=make(chan string,1)
当我们复制一一个channel或用于函数参数传递时,引用传递。我们只是拷贝了一个channel引用,因此调用者和被调用者将引用同一个channel对象。和其它的引用类型- -样, channel 的零值也是nil。
当参数capacity=0时,channel 是无缓冲阻塞读写的:当capacity>0时,channel 有缓冲、是非阻塞的,直到写满capacity个元素才阻塞写入。。
2.channel的机制
channe|有两个端:
写端(传入端)
chan