【发布时间】:2016-04-25 09:15:15
【问题描述】:
我有一个算法非常简单的研究程序。当成功即将到来时,goroutine 应该通过 os.Exit(0) 关闭(结束)。我等一天,两天……什么? :)
这是简单的代码
package main
import "os"
func main() {
for {
go func() { os.Exit(0) }()
}
}
还有我的问题:
- 为什么 os.Exit 不终止 goroutine?
- 终止(停止)goroutine 执行的正确方法是什么?
【问题讨论】:
-
你确定是这个原因吗?因为给定的代码对我来说很好。不管怎样,你试过简单的
return吗? -
我不知道你在哪里试过,但在我的电脑上这段代码没有完成。我不知道如何将
return与 goroutine 一起使用。 goroutine内部的所有计算,结果不能“返回”。 -
go func() { return }()? -
而且我知道(手动计算后)成功结果被遗漏了......因为 os.Exit 在需要时没有工作。
-
我添加了一个游乐场链接来显示我的代码逻辑(只是结构示例)