gpt4 book ai didi

go - 在 Go 中取消阻塞操作

转载 作者:IT王子 更新时间:2023-10-29 01:27:38 26 4
gpt4 key购买 nike

我在第三方库中有一个我无法控制的阻塞操作。它可能会永远消失。所以我想给它设置一个超时时间。显而易见的方法是用一个 channel 和一个 goroutine 包装它,然后用 time.After 选择结果。然而,问题是运行阻塞操作的 goroutine 可能会永远运行下去。

这里有一个例子来说明这个http://repl.it/90o

有没有办法取消一个 goroutine 或让它被垃圾收集?

最佳答案

您无法从“外部”停止 goroutine。 goroutine 必须支持某种终止信号(通常是 channel )。但如果它没有,您不能强制它或杀死它。

如果你不能对你正在使用的第三方库做任何事情,你最多可以做的就是在你可以杀死的不同进程中运行它(在你的 go 应用程序启动的不同应用程序中),但是那只是丑陋而且太麻烦了。

关于go - 在 Go 中取消阻塞操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com