我在第三方库中有一个我无法控制的阻塞操作.它可能会永远消失.所以我想设置一个超时.显而易见的方法是用通道和goroutine包装它,然后选择结果time.After.然而,问题是运行阻塞操作的goroutine可能会永远存在.
time.After
这是一个例子来说明这个http://repl.it/90o
有没有办法取消goroutine或收集垃圾?
timeout go blocking goroutine
blocking ×1
go ×1
goroutine ×1
timeout ×1