将数据写入 go lang 通道的成本?
Cost of writing data to a go lang channel?
我有一个 list
(containers/list
) 包含一个 []string
。我经常通过一个频道发送这个。我正在尝试了解这种沟通的成本。一般情况下,发送数据的浅表副本是否被复制到缓冲区,然后在接收时在另一端重新复制?那么发送和接收并不比浅拷贝更昂贵?一般来说有一些陷阱吗?
值被复制到频道和从频道中复制。如果您要发送 container/list,则发送 a struct with two fields is copied。不复制列表元素。
这是一个浅拷贝。
问题是应用程序必须确保只有一个 goroutine 修改列表元素。
我有一个 list
(containers/list
) 包含一个 []string
。我经常通过一个频道发送这个。我正在尝试了解这种沟通的成本。一般情况下,发送数据的浅表副本是否被复制到缓冲区,然后在接收时在另一端重新复制?那么发送和接收并不比浅拷贝更昂贵?一般来说有一些陷阱吗?
值被复制到频道和从频道中复制。如果您要发送 container/list,则发送 a struct with two fields is copied。不复制列表元素。
这是一个浅拷贝。
问题是应用程序必须确保只有一个 goroutine 修改列表元素。