python QT界面关闭线程池的线程跟随退出完美解决方案

 更新时间:2022年11月28日 17:13:35   作者:柳道  
这篇文章主要介绍了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()  # 关闭线程池

方法二、线程池中执行的循环为调用的模块内的方法

比如 paramiko 库中,sftp下载文件的方法。

这种情况可以利用回调函数进行判断。

回调函数检查控制变量,如果检测到需要停止执行时,执行sys.exit()结束退出线程

from concurrent.futures import ThreadPoolExecutor
import sys
import time

a = True
def call(): # 定义退出的函数
    if not a:
        print('线程结束退出')
        sys.exit()  # 退出

def fun(callback=None):  # 模拟sftp.get方法,循环执行,并且有回调函数
    while True:
        time.sleep(0.1)
        print('1')
        if callback != None:
            callback()  # 每次循环调用回调函数,进行判断是否需要结束线程

tp = ThreadPoolExecutor(5)
for i in range(10):
    tp.submit(fun, call)

time.sleep(1)
a = False
tp.shutdown()

到此这篇关于python QT界面关闭,线程池的线程跟随退出解决思路方法的文章就介绍到这了,更多相关python QT界面关闭内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 安装python3.7编译器后如何正确安装opnecv的方法详解

    安装python3.7编译器后如何正确安装opnecv的方法详解

    这篇文章主要介绍了安装python3.7编译器后如何正确安装opnecv,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python 自动化表单提交实例代码

    Python 自动化表单提交实例代码

    今天以一个表单的自动提交,来进一步学习selenium的用法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-06-06
  • python中web框架的自定义创建

    python中web框架的自定义创建

    这篇文章主要为大家详细介绍了python中web框架的自定义创建,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Scrapy启动报错invalid syntax的解决

    Scrapy启动报错invalid syntax的解决

    这篇文章主要介绍了Scrapy启动报错invalid syntax的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 解决pycharm回车之后不能换行或不能缩进的问题

    解决pycharm回车之后不能换行或不能缩进的问题

    今天小编就为大家分享一篇解决pycharm回车之后不能换行或不能缩进的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python求一批字符串的最长公共前缀算法示例

    Python求一批字符串的最长公共前缀算法示例

    这篇文章主要介绍了Python求一批字符串的最长公共前缀算法,涉及Python针对字符串的遍历、判断、计算等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • python属于软件吗

    python属于软件吗

    在本篇内容里小编给Python新手整理了关于python是软件吗的相关知识点,有兴趣的朋友们可以阅读下。
    2020-06-06
  • python re正则匹配网页中图片url地址的方法

    python re正则匹配网页中图片url地址的方法

    今天小编就为大家分享一篇python re正则匹配网页中图片url地址的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 一篇文章搞懂python的转义字符及用法

    一篇文章搞懂python的转义字符及用法

    这篇文章主要介绍了一篇文章搞懂python的转义字符及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python的Django框架中的Context使用

    Python的Django框架中的Context使用

    这篇文章主要介绍了Python的Django框架中的Context使用,相关的渲染是Django中创建模版的关键,需要的朋友可以参考下
    2015-07-07

最新评论