Maison > Article > développement back-end > Comment interrompre une goroutine bloquée dans (*TCPListener) Accepter ?
Lors du développement d'un serveur qui répond aux clients TCP, les développeurs peuvent rencontrer une situation où ils doivent s'arrêter proprement le serveur et interrompre une goroutine actuellement bloquée dans la fonction Accept (*TCPListener). Cette fonction est chargée d'attendre la prochaine connexion client et de renvoyer un Conn générique.
Cependant, la documentation d'Accept indique qu'elle attend le prochain appel, ce qui peut prêter à confusion sur la façon d'interrompre la goroutine bloquante. . La documentation manque également d'informations complètes sur la gestion des erreurs.
Pour résoudre ce problème, utilisez simplement la méthode Close() sur l'objet net.Listener obtenu à partir de l'appel net.Listen(...). Cette action ferme l'écouteur, interrompant la goroutine en attente dans Accept. Il est essentiel de revenir rapidement de la goroutine en cours d'exécution pour éviter toute condition de course potentielle.
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!