我有一个调用方法的goroutine,并在通道上传递返回值:
ch := make(chan int, 100)
go func(){
for {
ch <- do_stuff()
}
}()
Run Code Online (Sandbox Code Playgroud)
我怎么停止这样的goroutine?
我在第三方库中有一个我无法控制的阻塞操作.它可能会永远消失.所以我想设置一个超时.显而易见的方法是用通道和goroutine包装它,然后选择结果time.After.然而,问题是运行阻塞操作的goroutine可能会永远存在.
这是一个例子来说明这个http://repl.it/90o
有没有办法取消goroutine或收集垃圾?