gpt4 book ai didi

go - 如何停止一个 goroutine

转载 作者:IT老高 更新时间:2023-10-28 12:57:35 25 4
gpt4 key购买 nike

我有一个调用方法的 goroutine,并在 channel 上传递返回值:

ch := make(chan int, 100)
go func(){
for {
ch <- do_stuff()
}
}()

如何停止这样的 goroutine?

最佳答案

通常,您会向 goroutine 传递一个(可能是单独的)信号 channel 。当您希望 goroutine 停止时,该信号 channel 用于将值插入。 goroutine 定期轮询该 channel 。一旦检测到信号,它就会退出。

quit := make(chan bool)
go func() {
for {
select {
case <- quit:
return
default:
// Do other stuff
}
}
}()

// Do stuff

// Quit goroutine
quit <- true

关于go - 如何停止一个 goroutine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807590/

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