我正在使用thread.start_new_thread
在我的Python应用中创建一个线程。
如果在三秒钟内没有完成,我该怎么办?
答案 0 :(得分:2)
你不能直接这样做。无论如何中止一个线程并不是一个好习惯 - 而是考虑使用同步机制让你以“软”的方式中止线程。
但是如果没有非守护线程(例如,如果唯一的主线程结束),则daemonic threads将自动中止。也许这就是你想要的。
答案 1 :(得分:1)
你做不到。线程不能从外部杀死。你唯一能做的就是添加一种让线程退出的方法。如果线程在某些系统调用中被阻止,显然你将无法做到这一点。
答案 2 :(得分:1)
如果你真的需要这样做(例如线程调用可能永远挂起的代码),那么考虑重写代码以使用多处理模块生成进程。然后,您可以使用Process.terminate()方法终止该进程。当然,你需要2.6或更高版本。
答案 3 :(得分:1)
如related question中所述,您可以通过ctypes.pythonapi
引发异常,但不能等待系统调用。