为了账号安全,请及时绑定邮箱和手机立即绑定

golang 从通道出队时会垃圾收集指针通道吗?

golang 从通道出队时会垃圾收集指针通道吗?

Go
饮歌长啸 2023-02-14 18:28:07
如果我有这样的事情: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,因此不会阻止指向的元素被垃圾回收。


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信