停止或杀死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

回到顶部