Ist es in Ordnung, einen Kanal offen zu lassen?
Ist es OK zu verlassen, Gehen Sie Kanal für immer geöffnet werden (niemals in der Nähe der Kanal), wenn ich nie überprüfen, die für seinen Zustand? Wird es führen, um memory leaks? Ist der folgende code OK?
func (requestCh chan<- Request) GetResponse(data RequestData) Response {
reply := make(chan Response)
requestCh <- Request{data: data, replyCh: reply}
return <-reply
}
InformationsquelleAutor der Frage Kluyg | 2011-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist OK zu verlassen, Gehen Sie Kanal für immer geöffnet und nie geschlossen. Wenn der Kanal nicht mehr verwendet wird, es wird Müll gesammelt.
InformationsquelleAutor der Antwort peterSO
Ja, es ist ok, um einen Kanal öffnen. Als die die go-Programmiersprache Buch angegeben:
InformationsquelleAutor der Antwort cizixs
Ja, es ist OK zu verlassen, den Kanal öffnen, und in der Tat ist es typisch. Ein Kanal geöffnet wird und weder einen Verweis auf das Kanal-Objekt, und so nicht halten, es wird Müll gesammelt.
InformationsquelleAutor der Antwort Sonia
Gehen wird Müll gesammelt, so dass Sie nicht wirklich 'frei' nichts.
Gibt es die Möglichkeit, zu enge Kanäle, aber es ist meistens wie - close(channel) - sagen, die goroutine (oder Hauptprogramm), die nichts anderes gesendet wird auf dem Kanal.
InformationsquelleAutor der Antwort Łukasz Gruner