第4章 并发编程
4.5 channel
channel是Go语言在语言级别提供的goroutine间的通信方式。我们可以使用channel在两个或多个goroutine之间传递消息。channel是进程内的通信方式,因此通过channel传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针等。如果需要跨进程通信,我们建议用分布式系统的方法来解决,比如使用Socket或者HTTP等通信协议。Go语言对于网络方面也有非常完善的支持。
基本语法
//声明
var ch chan int //声明一个传递类型为int的channel
var m map[string] chan bool //声明一个map,元素是bool型
//定义
ch := make(chan int) //声明并初始化一个int类型名为ch的channel
//写入
ch <- value
//读取
value := <-ch