Goroutines 可以在完成之前终止吗?
这个问题之前已经解决过。当前的问题是是否可以在 Goroutine 完成执行之前终止它们。
示例经常展示通道的使用并为此目的进行选择,这在 Goroutine 参与允许通道监视的迭代任务时非常有效。然而,在提供的代码片段中,我们遇到一个在返回之前执行单个操作的 Goroutine:
<code class="go">func main() { stop := make(chan string, 1) go func() { time.Sleep(10 * time.Second) stop <- "stop" return }() <- stop }</code>
我们可以在完成之前停止此 Goroutine 的执行吗?
答案:不可控制的 Goroutine
不幸的是,没有直接的方法可以在 Goroutine 返回之前终止它(除了使用 os.Exit 突然退出整个程序)。
Goroutines 本质上是独立的,不受外部控制。一旦启动,它们就会独立运行,无法强行停止。
以上是Goroutines 可以在执行完成之前终止吗?的详细内容。更多信息请关注PHP中文网其他相关文章!