停止或杀死Python线程
我有一个问题试图杀死或停止在Python中的线程,因为没有任何官方API我试图找到一种方法来停止指定的线程而不杀死其他人。停止或杀死Python线程
每次我启动一个线程我给它一个ID
t = threading.Thread(name=slug_ID, target=function)
现在在主线程中有可能用户要求停止并删除线程。由于我启动了不同的线程,每个线程都有自己的slug_ID。
for thread in threading.enumerate():
if (thread.getName()==slug_ID)):
#thread.kill()
我想立即杀死线程,我已搜索周围,我发现了两个可能性:
- 属性/标志:由于线程我骑自行车可以检查标记是否已被标记并返回,不幸的是线程现在正在不断地循环,所以例如如果线程正在休眠,那么将不会立即死亡,而是仅仅检查标记被检查的那部分代码线程将会死亡
- 信号:当我在主线程上启动事件时,线程会捕获事件并优雅地退出,不幸的是我应该创建自定义信号以仅停止我想要杀死的特定线程,像这样:
try:
while True:
thread_do_stuff()
except Custom_signal:
#exitThread
的问题是,我不知道如何箱和捕捉定制的信号,如何任何想法,我可以解决这个问题?
回答:
Python不提供用于查杀线程的API,因此我们将深入讨论here。例如,Java用于公开杀死线程的特定方法,但很久以前它已被删除。
在Python中,信号仅在main thread中处理。因此,你的第二种方法是行不通的。
如果您需要突然停止并发执行,唯一安全的方法是使用进程而不是线程。
以上是 停止或杀死Python线程 的全部内容, 来源链接: utcz.com/qa/257603.html