如何优雅的关闭channel

单一生产者,单一消费者

单一生产者,多消费者

多生产者,单一消费者

多生产者,多消费者

https://zhuanlan.zhihu.com/p/32529039

原则:遇到chan的场景,首先要界定清生产者和消费者,生产者负责生产与关闭chan,消费者只管消费,消费者千万不要去关闭chan。

一、for range 读取chan,当chan关闭时程序会跳出for range

二、使用v,ok := <-chan channel 模式,每次判断ok,当ok为false时代表chan已关闭,就不要再读取已经关闭的chan了