我有一个调用方法 goroutine,并在通道上传递返回值:9 B: j# m0 ~* X' ], o
' ?) g& g2 X! e5 z* O
ch := make(chan int,100)go func(){ for ch 如何停止这样的 ?goroutine?0 b! j/ ]6 {- |+ T* R% h' D
( }$ g7 @+ L" O& W. I5 f
解决方案: $ ~+ ^6 S! p3 H0 r' F; s7 ]
通常,你去 goroutine 传输一个信号通道(可能是单独的)。当你想要 goroutine 停止时,信号通道用于推入值。goroutine 定期轮询通道。一旦检测到信号,它会退出。[code]quit := make(chan bool)go func() for select case <- quit: return default: Do other stuff Do stuff// Quit goroutinequit <- true: C. g+ I: L/ E. |7 k1 ]