gpt4 book ai didi

go - 检测 Go 例程中断

转载 作者:数据小太阳 更新时间:2023-10-29 03:38:12 27 4
gpt4 key购买 nike

有没有办法检测 go 例程在执行时是否被中断?我想要类似于 Java 中的 InterruptedException 的东西:https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html

最佳答案

InterruptedException如果线程被中断,则抛出 Java 中的异常,例如与 Thread.interrupt()方法(当它正在等待、 sleep 或以其他方式占用时)。

在 Go 中,您不能从外部中断 goroutine(参见 cancel a blocking operation in Go),这意味着检测它毫无意义。

一个goroutine可能在goroutine中执行的函数返回时正常结束,也可能在panic时突然结束。但即使它出现 panic ,那也是由于它自己的功能,而不是因为另一个 goroutine 强制它或中断它。

一个 goroutine 只能在它自己支持某种终止的情况下被停止,例如它可能会监视另一个 goroutine 可能关闭的 channel (或在其上发送一个值),当检测到该 goroutine 可能会自动返回 - 这将被视为正常终止(而不是中断)。

关于go - 检测 Go 例程中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506475/

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