可以打开频道吗?

如果我从未检查过Go通道的状态,可以永远保持打开状态(永远不关闭通道)可以吗?会导致内存泄漏吗?下列代码可以吗?

func (requestCh chan<- Request) GetResponse(data RequestData) Response {

reply := make(chan Response)

requestCh <- Request{data: data, replyCh: reply}

return <-reply

}

回答:

可以永远保持Go频道永远不关闭。当不再使用该通道时,将对其进行垃圾回收。

请注意,只有当接收器正在寻找关闭通道时,才需要关闭通道。关闭通道是通道上的控制信号,指示没有更多数据跟随。

设计问题:通道关闭

以上是 可以打开频道吗? 的全部内容, 来源链接: utcz.com/qa/410466.html

回到顶部