Channel

channels是go语言中goroutine的通信机制。
每个channel都有一个特殊类型,就是channels可发送数据的类型。一个可以发送int类型数据的channel 一般协程chan int。

使用内置的make函数,我们可以创建一个channel:

ch := make(chan int) 

当赋值一个channel活用于函数参数传递适,我们只是拷贝了一个channel引用,因此调用者和被调用者是同一个channel对象。channel的零值也是nil
两个相同类型的channel可以使用==运算符比较。如果两个channel引用相同的对象,那么结果是真。

发送语句: <- 分割channel和要发送的值 channel <- 发送的值 ch <- x
接受语句: <- 运算发写在channel对象之前。 接受的值 <- channel x = <- ch
<- ch 不使用接受结果的接受操作 result is discarded(结果丢弃了 )

创建channel ,可以指定第二个整型参数,对应channel容量,如果channel容量大于零,channel就是带缓冲的channel

ch = make(chan int)
ch =make(chan int,0)
ch = make(chan int,3) //带缓冲,capacity(容量)为3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。