import time
from threading import Thread
'''
多线程 控制线程退出方法
主线程启动多线程,若主线程退出则关闭启动的多线程
设置主线程的属性daemon = 1
主线程循环状态保持运行,并判断变量self.flag状态,用于退出标识
'''
class Abc:
#定义一个变量
def __init__(self):
self.flag = 111
#要在后台运行的任务
def test(self):
while 1:
time.sleep(5)
#主程序,持续运行判断self.flag状态用以跳出循环退出,运行的多线程也一起退出
def run(self):
t = Thread(target=self.test)
t.daemon = 1
t.start()
while 1:
self.flag = 222
if self.flag == 222:
print('flag is {},main process exit'.format(self.flag))
break
if __name__ == '__main__':
abc = Abc()
abc.run()