如何终止选定的线程

时间:2012-08-27 12:43:34

标签: python multithreading

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

2 个答案:

答案 0 :(得分:2)

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

编辑:执行此操作的一种方法示例:

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()

答案 1 :(得分:1)

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

编辑//您可以使用.join()

将要停止的每个子线程加入其父级