go channel 用法及原理

无缓冲

创建一个channel

1
chan1 := make(chan int)

有缓冲

1
chan2 := make(chan int 1)

通道方向

指定channel的方向

通道选择器

select

阻塞

非阻塞

default

超时

time

通道关闭

close ,

可以接收关闭channel的数据,但是不能向关闭的channel发送数据

通道遍历

for range 会阻塞

Timer 和 ticker

timer 可以再到期之前结束

ticker 时隔一定时间执行一次。

通道的实现