如何实时解决线程死锁问题?

时间:2016-09-18 20:11:05

标签: python python-3.x python-multithreading

如果在运行时怀疑python线程之间存在死锁,有没有办法解决它而不会终止整个进程?

例如,如果一些线程花费的时间比它们应该的长,那么资源管理器可能会怀疑其中一些线程已经死锁。虽然它当然应该在未来的代码中进行调试,是否有一个干净的解决方案可以立即(在运行时)使用,以杀死特定的线程,以便其他线程可以恢复?

编辑:我正在考虑添加一些“死锁检测”循环(在它自己的线程中)稍微休眠一下,然后检查所有正在运行的线程,如果其中一些看起来很慢,它会杀死最不重要的一个其中。在什么时候线程被怀疑死锁,哪个是最不重要的,当然是死锁检测循环程序员定义的。

显然,它不会捕获所有问题(最明显的是死锁检测线程本身是死锁的)。我们的想法不是找到一个数学上完美的解决方案(当然,这不是编写可以解锁的代码)。相反,我想在一些现实案例中部分地解决问题。

1 个答案:

答案 0 :(得分:2)

您可以提前尝试使用this代码段,但在执行过程中程序会停滞不前,您无法对其进行太多操作。

像WinDbg或strace这样的调试器可能有所帮助,但由于Python是一种解释性语言,我怀疑它们是否可以使用。

相关问题