golang优雅的关闭channel
- golang 没有简单普遍的方式来检查channel是否已经关闭了
- 关闭已经关闭的channel会导致panic
- 发送值到已经关闭的channel会导致panic
一个channel 关闭的原则是不要从接收端关闭channel,也不要关闭有多个并发发送者的channel。【别人可能还写呢】
换句话说,如果sender(发送者)只是唯一的sender或者是channel最后一个活跃的sender,那么你应该在sender的goroutine关闭channel,从而通知receivers(接收者们)已经没有值可以读了。