gpt4 book ai didi

go - 如何检查goroutine是否创建成功?

转载 作者:IT王子 更新时间:2023-10-29 02:34:25 27 4
gpt4 key购买 nike

在 Go 中,go 是生成 goroutine 的关键字。但是,关键字似乎没有返回任何值,那么我如何检测 goroutine 是否正确生成?

Go 似乎使用以下方法来检查函数是否成功。

value, err = myFunc(value)

go 关键字是否有类似的用法来检测创建错误?如果失败,go 似乎会抛出运行时异常。

我想做一个测试,找出我可以为一个 CPU 创建的最大 goroutine 数量。

最佳答案

如你所知:

值,err = myFunc(value)

是通过返回内置的 error 类型来处理异常的惯用方法。我想,在某种程度上,您可以将其与已检查的异常进行比较。但是,在您的情况下,未能生成新的 goroutine 更多是运行时异常。 golang 如何处理这些是通过使用 panics .您可以使用内置的 recover() 函数在您的代码中处理它们,该函数将尝试重新获得对执行流程的控制。否则,panic 将进入堆栈,直到程序崩溃。

请注意,recover() 必须在被defered 的函数中调用,这些函数被插入列表并始终在它们被延迟的函数 - 因此即使发生 panic 它们也会被调用,允许您调用 recover()。如果您只是尝试在函数末尾调用 recover()(或者在 panic 子函数之后的任何地方),执行将永远不会到达它。如果您可以处理 panic (recover() 不返回 err),那么您的程序实际上可以继续执行,它将从抛出 panic 是。

认为上面的博文已经足够了,但如果您需要更多示例,请在此处评论。

此外,您的系统很可能会受到 RAM 内存而不是 CPU 的限制。

关于go - 如何检查goroutine是否创建成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com