缓存通道:发送数据一定会在接收数据之前发生。
启动goroutine的go语句一定会在这个goroutine开始执行之前执行。
单向channel
可将 channel 指定为单向通道。...select可以监听多个channel的输入数据,一个channel对应一个case
当任何被监听的channel中都没有的数据的时候,select语句块会阻塞
select可以有一个default子句...当多个被监听channel中都有数据时,则select会随机选择一个case 执行。
当所有的被监听channel中都无数据,且default子句存在时,则 default子句会被执行。...当缓冲区空时,接收操作才会阻塞
如果有多个 channel 需要监听,可以考虑用 select,随机处理一个可用的 channel
package main
import "fmt"
func producer...,在写入时,不能进行读的操作。