如何中断执行(* TCPListener)接受的goroutine?

如何中断执行(* TCPListener)接受的goroutine?,第1张

如何中断执行(* TCPListener)接受的goroutine?

这是我一直在寻找的东西。也许将来会帮助某人。注意使用select和“ c”通道将其与退出通道结合使用

    ln, err := net.Listen("tcp", ":8080")    if err != nil {        // handle error    }    defer ln.Close()    for {        type accepted struct { conn net.Conn err  error        }        c := make(chan accepted, 1)        go func() { conn, err := ln.Accept() c <- accepted{conn, err}        }()        select {        case a := <-c: if a.err != nil {     // handle error     continue } go handleConnection(a.conn)        case e := <-ev: // handle event return        }    }


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5170970.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存