方法一、线程池执行的循环代码为自己写的情况
定义一个全局变量,默认为T,当QT界面关闭后,将该变量值改为F。
线程执行的循环代码内增加一个判断方法,每次循环之前对全局变量进行判断,如果结果为T则进行循环、如果为F,则break退出循环,结束线程
from concurrent.futures import ThreadPoolExecutor import time a = True # 设置全局变量 def fun(): # 线程池执行的函数 while a: # 线程池中的循环代码,每次循环都检查一遍变量a的值 time.sleep(0.1) # 线程需要执行的具体代码 print('1') tp = ThreadPoolExecutor(5) # 创建线程池 for i in range(10): tp.submit(fun) # 向线程池提交任务 time.sleep(1) a = False # 需要结束线程池任务时,执行该代码 tp.shutdown() # 关闭线程池