【发布时间】:2012-08-27 12:43:33
【问题描述】:
我有一个代码,其中有两种类型的线程。从第二个产生了 3 个线程。我想知道是否有一个函数可以调用,它会终止第二个类型的三个衍生线程,但仍然保持第一个运行。
【问题讨论】:
标签: python multithreading
我有一个代码,其中有两种类型的线程。从第二个产生了 3 个线程。我想知道是否有一个函数可以调用,它会终止第二个类型的三个衍生线程,但仍然保持第一个运行。
【问题讨论】:
标签: python multithreading
一个常见的解决方案是有一个全局变量,线程检查它们是否应该终止。
编辑:一种方法的示例:
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()
【讨论】:
join,当然,如果您的程序退出,您将无法杀死这些线程.
您可以为每种类型的线程保留一个线程池,然后相应地终止它们。例如,您可以将它们全局保存在 Queue.Queue 中,然后根据需要分别保存在 .stop() 中。
编辑// 您可以使用.join() 将您希望停止的每个子线程加入其父线程
【讨论】: