猿问

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

如果我有这样的事情:

requests := make(chan *RequestStruct, 1000 * 1000)
responses := make(chan *ResponseStruct, 1000 * 1000)

如果全部requests并且responses已经出列/消耗,那些以前存在的指针总有一天会被垃圾收集,对吧?(或者它不会因为没有人在频道上将它设置为零?)


饮歌长啸
浏览 55回答 1
1回答

至尊宝的传说

频道在runtime/chan.go. 从缓冲通道读取由函数实现chanrecv,它执行以下操作:qp := chanbuf(c, c.recvx) typedmemmove(c.elemtype, ep, qp) typedmemclr(c.elemtype, qp)存储在通道中的元素由 清除typedmemclr,因此不会阻止指向的元素被垃圾回收。
随时随地看视频慕课网APP

相关分类

Go
我要回答