如何创建一个将生成许多子线程的
python程序.
主线程&子线程并行执行.子线程需要检查
如果父亲还活着,如果没有活着,则所有子进程都应该自行终止. 最佳答案 您可以将threading.currentThread()给出的引用从父级传递给子级线程,并定期检查父级是否仍处于活动状态.
import threading
import time
class Child(threading.Thread):
def __init__(self, parent_thread):
threading.Thread.__init__(self)
#self.daemon = True
self.parent_thread = parent_thread
def run(self):
while self.parent_thread.is_alive():
print "parent alive"
time.sleep(.1)
print "quiting"
Child(threading.currentThread()).start()
time.sleep(2)
作为第二种选择,您可以调用self.parent_thread.join()来等待阻塞该线程完成.
https://docs.python.org/2/library/threading.html#threading.Thread.join
或者您可以将子线程设置为守护进程模式,但如果只有守护程序线程处于活动状态,则整个进程将终止.这不一定是你想要优雅关闭的东西.
https://docs.python.org/2/library/threading.html#threading.Thread.daemon