Golang通信的精髓: Go是基于通信来共享的,而不是基于共享来通信的。
Golang提倡使用通信来替代共享内存,这里通信的方法就是使用channel(通道)
通道类似于队列,先进先出,channel作为一种特殊的类型,在任何时候,同时只能有一个goroutine访问通道进行发送和获取数据。channel通信是在goroutine之间进行同步的主要方法。
一、通道的声明:
var 通道变量 chann 通道类型
例如:var testChannel chann int
二、通道的创建:
通道实例 := make(chan 数据类型, 缓存大小)
例如:testChannel := make(chan int, 10)
三、通道的类型:
1.按有无缓存分类
(1)无缓存的通道
无缓存通道相当于缓存为1的有缓存通道
testChannel := make(chan int)
testChannel := make(chan int,1)
(2)有缓存通道
testChannel :=