Unterbrechen der Annahme-Goroutine von TCPListener
In Go erstellen Server, die TCP-Verbindungen verarbeiten, eine Goroutine, um mithilfe des (*TCPListener) auf eingehende Verbindungen zu warten. Methode akzeptieren. Wenn der Server sauber heruntergefahren werden muss, muss diese Goroutine unterbrochen werden.
Unterbrechungsmethode
Die Methode zum Unterbrechen des (*TCPListener).Accept Goroutine ist: Schließen Sie einfach den net.Listener, der von net.Listen(...) erhalten wurde. Dies führt dazu, dass der Accept-Aufruf einen Fehler zurückgibt, sodass die Goroutine ordnungsgemäß beendet werden kann.
Sobald der net.Listener geschlossen ist, sollte die Accept-Goroutine von ihrer Ausführung zurückkehren. Dies liegt daran, dass in der Dokumentation für Accept angegeben ist, dass es „auf den nächsten Aufruf wartet und einen generischen Conn zurückgibt“. Wenn der net.Listener geschlossen ist, gibt es keine weiteren Verbindungen zum Akzeptieren, sodass die Accept-Goroutine beendet wird.
Das obige ist der detaillierte Inhalt vonWie kann man die Akzeptanz-Goroutine eines TCPListeners in Go ordnungsgemäß unterbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!