Python 超时脚本终止活动线程超过 X 秒
我到处寻找一个好的超时脚本,想要在一个线程活跃超过X秒后把它杀掉,但我看到的所有例子都有缺陷,不能总是停止线程。使用 thread.join(x)
反而让线程失去了它的意义。
我找到的唯一一个还不错的例子是 在函数调用上设置超时,不过那个例子也不是没有问题……
有没有人知道更好的方法来做到这一点?
2 个回答
0
我知道这可能不是你想要的,但你有没有考虑过使用信号的方法呢?关于函数调用的超时 http://docs.python.org/library/signal.html#example
你可以在线程开始执行时设置一个报警信号,然后在信号处理器中停止这个线程。
2
你可以看看我在这个链接的回答:python: 如何在多线程中发送数据包,然后让线程自己结束。里面有一个关于InterruptableThread类的片段,还有一个示例,展示了如何在超时后结束另一个线程,这正是你需要的。
在activestate上还有一个类似的Python示例。