Python 如何终止所选线程

Python 如何终止所选线程,python,multithreading,Python,Multithreading,我有一个代码,其中我有两种类型的线程。从第二个线程派生出3个线程。我想知道是否有一个我可以调用的函数,它将终止第二种类型的三个派生线程,但仍保持第一种线程运行。一个常见的解决方案是使用一个全局变量,线程检查它们是否应该终止 编辑:一种方法的示例: class MyThread(Thread): def __init__(self): self.keep_running = True def run(self): while self.keep_r

我有一个代码,其中我有两种类型的线程。从第二个线程派生出3个线程。我想知道是否有一个我可以调用的函数,它将终止第二种类型的三个派生线程,但仍保持第一种线程运行。

一个常见的解决方案是使用一个全局变量,线程检查它们是否应该终止

编辑:一种方法的示例:

class MyThread(Thread):
    def __init__(self):
        self.keep_running = True

    def run(self):
        while self.keep_running:
            # Do stuff

my_thread = MyThread()
my_thread.start()

# Do some other stuff

my_thread.keep_running = False
my_thread.join()

您可以为每种类型的线程保留一个线程池,然后相应地终止它们。例如,您可以将它们保持在一个
队列中。全局队列
,然后根据需要将每个队列
.stop()


编辑//您可以使用

将您希望停止的每个子线程连接到其父线程。请看这里的答案:我需要一个函数,该函数将终止所有子线程,无论它们处于何种状态。您可以将它们连接到父线程并终止父线程(请参见我的编辑)。如何以中断的形式动态执行此检查。基本上,我将创建一个网页,如果用户按下一个按钮,它将发送一个HTTP GET来终止第二种类型的所有线程。@sHoM添加了一个小示例,希望能给您一个想法。@sHoM不必是,在这种情况下,您不必调用
join
,当然,如果您的程序退出,您也无法杀死这些线程。我做了与上面完全相同的事情,但它没有离开While循环,而是在While内继续相同的操作。