首先,我们先复习一下Channel都有哪些特性?

1.给一个 nil channel 发送数据,造成永远阻塞

2.从一个 nil channel 接收数据,造成永远阻塞

3.给一个已经关闭的 channel 发送数据,引起 panic

4.从一个已经关闭的 channel 接收数据,如果缓冲区中为空,则返回一个零值

5.无缓冲的channel是同步的,而有缓冲的channel是非同步的

以上5个特性是死东西,也可以通过口诀来记忆:“空读写阻塞,写关闭异常,读关闭空零”。