关于go channel的用法

今天用go chan,和朋友争论说,到底chan里存放的是数据的引用,还是做的值拷贝,也就是到底 chan <- v是深拷贝还是浅拷贝。

共 2 个回复


yjinglee

拷贝也不浪费什么性能的都是在栈上储存的,拷贝就一个汇编指令就搞定了啊。。。你要想想用了引用就需要在堆上分配内存,后面就涉及GC一系列开销,还有这个g如果频繁的被M等待,再执行,再等待这里的对象就被N次分配和回收,不慢才怪。。。

# 0

xinyu391

据传是 写入时 拷贝
这个很简单,自己构造个对象,更改对象的属性,打印下,就知道了

# 1