如果我有这样的事情:requests := make(chan *RequestStruct, 1000 * 1000)
responses := make(chan *ResponseStruct, 1000 * 1000)如果全部requests并且responses已经出列/消耗,那些以前存在的指针总有一天会被垃圾收集,对吧?(或者它不会因为没有人在频道上将它设置为零?)
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
频道在runtime/chan.go
. 从缓冲通道读取由函数实现chanrecv
,它执行以下操作:
qp := chanbuf(c, c.recvx) typedmemmove(c.elemtype, ep, qp) typedmemclr(c.elemtype, qp)
存储在通道中的元素由 清除typedmemclr
,因此不会阻止指向的元素被垃圾回收。
- 1 回答
- 0 关注
- 54 浏览
添加回答
举报
0/150
提交
取消