2017-01-26 10 views
3

[]stringを含むlistcontainers/list)があります。私は多くのチャンネルでこれを送っています。この通信がどれだけ高価であるかを理解しようとしています。送信されたデータの浅いコピーがバッファにコピーされ、受信時に相手側で再コピーされるという一般的な画像ですか?だから、送受信は浅いコピーよりも高価ではありませんか?一般的にいくつかの問題がありますか?go langチャネルにデータを書き込むコスト?

+0

コストとセマンティクスは、割り当てとまったく同じです。すべての割り当ては、割り当てられた値のコピーであり、それ以上のものはありません。 – JimB

+0

それは私が思ったものです。 RustとC++はもっと複雑な振舞いをしているので、私はちょうど確かめたいと思っていました。 – divbyzero

答えて

4

値はチャネルとの間でコピーされます。コンテナ/リストを送信する場合は、a struct with two fields is copied。リスト要素はコピーされません。

浅いコピーです。

アプリケーションは、1つのゴルーチンだけがリストの要素を変更するようにする必要があります。

関連する問題