python QT界面关闭,线程池的线程跟随退出解决思路方法

方法一、线程池执行的循环代码为自己写的情况

定义一个全局变量,默认为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()  # 关闭线程池
上一篇:入门二维凸包


下一篇:2022-过TP附加调试(逆战NZ)