我想知道如何杀死/停止 goroutine。所有示例都基于通道和选择,这似乎只有在 goroutine 包含一些可以在通道上监听的重复任务时才有效。有没有办法在下面的 goroutine 返回之前停止它?
package main
import (
"time"
)
func main() {
stop := make(chan string, 1)
go func() {
time.Sleep(10 * time.Second)
stop <- "stop"
return
}()
<- stop
}
有没有办法在下面的 goroutine 返回之前停止它?
不,没有(除了调用 os.Exit 来中止整个程序)。
Goroutine 是独立的,无法从外部控制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)