什么是 Channel

未匹配的标注

在 Go 语言中有句至理名言是这么说的: “不要通过共享内存来通信, 而应通过通信来共享内存”.

可见通信是至关重要的一点, 那么如何实现通信呢?

Go 提供了一个原语来作为通信的媒介, 我们通常称之为 “管道/信道/通道”.

我们暂时先抛开到底是哪个原语不说. 先来看看生活中的管道.

生活中的管道/信道/通道

为了便于理解, 我们看看生活中的管道/信道/通道.

水管和电管:

火车轨道:

当然还有很多的例子.

想想当电跑到水管里, 汽车在火车轨道上跑…会发生点什么?

这个一个值得深思的问题.

但可以知道的是一个明确的数据类型可以有效减少混乱和复杂度.

我们再来个例子看看生活中的信道:

满满都是回忆的儿时玩具: “纸话筒”.

连接两个纸话筒的那根线就是一种信息媒介, 俗称信道.

类似还有电话线, 网线等等.

而在 Go 语言中, 这种数据媒介叫做 channel, 关键字为 chan, 也就是我们前面所说的原语.

小白表示为什么非要简写呢? 本来单词就认识的不多, 平添困扰.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~