频道非常适合在goroutines之间进行通信.当一个程序执行简单的操作时,例如读取stdin,使用流做某事并将结果输出到stdout - 然后使用通道是一种过度杀伤,不必要地伤害性能.
只要标准库在某些地方没有提供特定于goroutines彼此通信的东西,就没有充分的理由来模拟简单的操作,比如使用io.Reader
或io.Writer
使用通道,分别具有基于通道的方法集(API).
另外,在需要的地方,简单的实现可以包装在一个通道中,而相反,将一个通道实现"解包"回原语是不可能的.此外,Go作者显然喜欢显性,导致性能瓶颈不被隐藏(并且令人惊讶).
归档时间: |
|
查看次数: |
1633 次 |
最近记录: |