Maison > développement back-end > Golang > Comment interrompre gracieusement l'exécution d'une goroutine (*TCPListener).Accept() ?

Comment interrompre gracieusement l'exécution d'une goroutine (*TCPListener).Accept() ?

DDD
Libérer: 2024-11-03 16:53:03
original
856 Les gens l'ont consulté

How to Gracefully Interrupt a Goroutine Executing (*TCPListener).Accept()?

Interruption d'une exécution de Goroutine (*TCPListener) Accepter

Lors de la création d'un serveur qui répond aux clients via une connexion TCP, une go-routine est souvent utilisé pour gérer les connexions entrantes à l'aide de (*TCPListener).Accept(). La question se pose de savoir comment arrêter proprement le serveur et interrompre la goroutine bloquée lors de cet appel.

La documentation de (*TCPListener).Accept() indique qu'il attend la prochaine connexion et renvoie un générique Connecticut. Cependant, il fournit des informations limitées sur la façon d'interrompre cette opération de blocage.

La solution réside dans l'utilisation de (TCPListener).Close(), qui ferme l'écouteur et provoque l'exécution de la goroutine (TCPListener).Accept() pour revenir. Cela permet au serveur d'être arrêté en douceur et d'interrompre la routine de démarrage. La routine go devrait alors revenir de l'appel et permettre au serveur de se terminer proprement.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal