处理Python线程中的信号

Eri*_*itt 8 python multithreading signals interrupt

我有一个用Python编写的线程应用程序,每当通过Ctrl+C或有时使用kill 接收到中断时,应用程序将挂起.从一个线程呈现堆栈跟踪,但应用程序仍保留在前台,我通常必须使用Ctrl+Z对其进行后台处理,然后尝试将其删除.

在线程应用程序中处理信号和键盘中断的正确方法是什么?

Tho*_*s K 14

如果newthread.daemon = True在启动每个线程之前设置,则线程将在主线程退出时自动终止.这并不是你所要求的,但从你所描述的内容来看,这听起来似乎值得了解.


unh*_*ler 5

我解决这个问题的方法是创建一个可以保留线程列表的模块.该模块还有一个方法可以杀死该列表中的每个线程.我注册了这个方法,以便在SIGINT收到信号时调用.最后,我创建了一个包装类,Thread它会自动将创建的实例添加到线程列表中.


bri*_*dum 5

CPython线程:中断包括Python线程中信号的发生,以及解决问题的各种解决方案.这是一个很好的阅读.