实现无限缓存的 channel

鸟窝 at 
Go 语言的 channel 有两种类型,一种是无缓存的 channel,一种是有缓存的 buffer,这两种类型的 channel 大家都比较熟悉了,但是对于有缓存的 channel,它的缓存长度在创建 channel 的时候就已经确定了,中间不能扩缩容,这导致在一些场景下使用有问题,或者说不太适合特定的场景。我为什么突然谈起这个无限缓存的 channel 呢?主要是我最近在 review 公司一位同事的代码时,我的某种设计思路出现了一个问题,如果使用无限缓存的 channel 的话,我的问题就会迎刃而解了。这位同事的设计大概是这样子的:一个 dispatcher 包含一个 channel,……