优雅的结束一个goroutine
package main
import "sync"
func main() {
var wg sync.WaitGroup
wg.Add(1)
ch := make(chan int)
go func() {
for {
foo, ok := <- ch
if !ok {
println("done")
wg.Done()
return
}
println(foo)
}
}()
ch <- 1
ch <- 2
ch <- 3
close(ch)
wg.Wait()
}
转载自:http://stackoverflow.com/questions/6807590/how-to-stop-a-goroutine

浙公网安备 33010602011771号