我一直试图找到一些可以回答这个问题的东西,但我找不到任何谈论它的东西。
假设我在Go中有一个函数,它是这样的:
func main() {
// assume this wrapped in a waitgroup or something
// so that it doesnt exit
go queue.ConsumeAndDoSomething()
go api.StartServer()
}
我这里有两个goroutine,它们做完全不同的事情,如果另一个崩溃/恐慌,理想情况下应该继续运行。如果队列操作失败,API 服务器应该会受到影响,反之亦然。
我不确定这是否可能(甚至推荐)。有没有一种干净的方法可以做到这一点,或者一旦goroutine恐慌,整个程序是否应该退出?
偶然的你
青春有我
相关分类