如果我从不判断GO通道的状态,是否可以让GO通道永远打开(决不关闭通道)?是否会导致内存泄漏?下面的代码可以吗?
func (requestCh chan<- Request) GetResponse(data RequestData) Response {
reply := make(chan Response)
requestCh <- Request{data: data, replyCh: reply}
return <-reply
}
如果我从不判断GO通道的状态,是否可以让GO通道永远打开(决不关闭通道)?是否会导致内存泄漏?下面的代码可以吗?
func (requestCh chan<- Request) GetResponse(data RequestData) Response {
reply := make(chan Response)
requestCh <- Request{data: data, replyCh: reply}
return <-reply
}
让围棋频道永远打开,永远不关闭是可以的.当该通道不再使用时,将对其进行垃圾回收.
请注意,只有在接收器处于关闭状态时才需要关闭通道