如何从堆栈上的任何地方退出 goroutine(从内部)?

例如:


func foo() {

    // How can I exit the goroutine here?

}


func bar() {

    foo()

}


func goroutine() {

    for {

        bar()

    }

}


func main() {

    go goroutine()

}

如何直接从foo()或退出 goroutine bar()?我正在考虑使用panicand recover,但我不确定它们究竟是如何工作的。(对于传统的异常处理,我只是将 的主体包装goroutine()在一个try块中并在我想退出时抛出异常。)


编辑:如果我使用panic,我什至需要recover()吗?


holdtom
浏览 221回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go