我怎樣才能殺死一個正在阻塞的 goroutine。一個想法是從主機(jī)函數(shù)返回將是一個解決方案,但我不確定這是否會殺死 goroutine。func myFunc() int { c := make(<-chan int) go func(){ for i := range c { // do stuff } }() return 0 // does this kills the inner goroutine?}有更好的解決方案嗎?例如,如果像這樣的東西可以工作就好了,但是由于它的阻塞而不能:func myFunc() int { c := make(<-chan int) closeChan := make(chan int) go func() { select { case close := <-closeChan: return 0 default: for i := range c { // do stuff } } }() closeChan<-0 // other stuff}
停止阻塞 goroutine
長風(fēng)秋雁
2023-08-14 14:32:16