中断 Goroutine 执行 (*TCPListener) Accept
当创建通过 TCP 连接响应客户端的服务器时,go-routine通常用于使用 (*TCPListener).Accept() 处理传入连接。问题是如何干净地关闭服务器并中断在此调用中阻塞的 goroutine。
(*TCPListener).Accept() 的文档指出它等待下一个连接并返回一个通用的Conn。但是,它提供了有关如何中断此阻塞操作的有限信息。
解决方案在于使用 (TCPListener).Close(),它会关闭侦听器并导致 goroutine 执行 (TCPListener).Accept() 返回。这允许服务器正常关闭并中断 go-routine。然后 go-routine 应该从调用中返回并允许服务器干净地退出。
以上是如何优雅地中断正在执行的 Goroutine (*TCPListener).Accept()?的详细内容。更多信息请关注PHP中文网其他相关文章!