首页 > 解决方案 > 有没有办法强行杀死python中的线程?

问题描述

在我的程序中,我有一个线程持续侦听UDP套接字,如果它收到任何消息,则将其放入队列中。
其他线程基本上是程序的主要部分。
所以当我想巧妙地终止程序时。所以我想要一种方法来强制(但巧妙地)终止线程或recv()定期退出套接字,以便我可以检查一些状态变量并在需要时退出。

标签: pythonmultithreadingsocketsudp

解决方案


强行杀死线程通常是不好的做法,应尽可能避免。

根据文档

守护程序线程在关闭时突然停止。它们的资源(如打开的文件、数据库事务等)可能无法正常释放。如果您希望线程优雅地停止,请将它们设为非守护进程并使用合适的信号机制,例如事件。

基于此信息,我建议使用事件关闭线程。这里有一个很好的例子:有什么方法可以杀死线程吗?


推荐阅读