Maison  >  Article  >  développement back-end  >  Comment interrompre gracieusement la goroutine d'acceptation d'un TCPListener dans Go ?

Comment interrompre gracieusement la goroutine d'acceptation d'un TCPListener dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 14:20:02113parcourir

How to Gracefully Interrupt a TCPListener's Accept Goroutine in Go?

Interruption de la goroutine d'acceptation de TCPListener

Dans Go, les serveurs gérant les connexions TCP créent une goroutine pour écouter les connexions entrantes à l'aide de (*TCPListener). Acceptez la méthode. Lorsque le serveur doit être arrêté proprement, cette goroutine doit être interrompue.

Méthode d'interruption

La façon d'interrompre la (*TCPListener).Accept goroutine est de fermez simplement le net.Listener obtenu à partir de net.Listen(...). Cela entraînera le renvoi d'une erreur par l'appel Accept, permettant à la goroutine de se terminer normalement.

Une fois net.Listener fermé, la goroutine Accept devrait revenir de son exécution. En effet, la documentation d'Accept indique qu'il "attend le prochain appel et renvoie un Conn générique". Lorsque net.Listener est fermé, il n'y aura plus de connexions à accepter, donc la goroutine Accept se fermera.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn