将数据写入go lang频道的成本?

时间:2017-01-26 22:20:13

标签: go channels

我有listcontainers/list),其中包含[]string。我经常通过一个频道发送这个。我正在努力了解这种沟通的成本。一般情况是,在发送时,发送的数据的浅拷贝是复制到缓冲区,然后在接收时在另一侧重新复制?那么发送和接收并不比浅层复制昂贵?一般都有一些问题吗?

1 个答案:

答案 0 :(得分:4)

将值复制到频道和从频道复制。如果您要发送容器/列表,则a struct with two fields is copied。列表元素不会被复制。

这是一个浅薄的副本。

问题是应用程序必须确保只有一个goroutine修改列表元素。