使用Python线程隔离代码

0 投票
1 回答
593 浏览
提问于 2025-04-18 00:57

我正在写一个程序,想要异步地执行一段代码。我希望这段代码能和主线程隔离开来,这样它就可以抛出错误、进入无限循环,或者做其他任何事情,而不会影响主程序。我原本打算使用 threading.Thread,但这有个大问题;我不知道怎么停止它。我试过 Thread._stop(),但这通常不起作用。结果我就得到了一个无法控制的线程,它占用了解释器的时间和 CPU 的资源。线程中的代码没有打开任何文件,也没有做其他可能导致问题的事情,所以即使我强行结束它也不会出问题。

Python 的 multiprocessing.Process.terminate() 可以很好地解决这个问题;不过,在 Windows 上启动一个进程几乎需要一秒钟,这个时间足够让我的图形界面出现烦人的延迟。

有没有人知道:a:怎么杀掉一个 Python 线程(我不在乎退出的方式有多糟糕),或者 b:怎么加快启动一个进程的速度?

还有第三种可能,就是使用一个第三方库,提供一种异步执行的替代方法,但我从来没有听说过这样的东西。

1 个回答

0

在我的情况下,最好的办法似乎是保持一个持续运行的工作进程,然后根据需要把代码发送给它。如果这个进程出现问题,我就把它结束掉,然后立刻启动一个新的,这样下次就不会有任何延迟了。

撰写回答