python QT界面關(guān)閉線程池的線程跟隨退出完美解決方案
方法一、線程池執(zhí)行的循環(huán)代碼為自己寫的情況
定義一個全局變量,默認(rèn)為T,當(dāng)QT界面關(guān)閉后,將該變量值改為F。
線程執(zhí)行的循環(huán)代碼內(nèi)增加一個判斷方法,每次循環(huán)之前對全局變量進行判斷,如果結(jié)果為T則進行循環(huán)、如果為F,則break退出循環(huán),結(jié)束線程
from concurrent.futures import ThreadPoolExecutor import time a = True # 設(shè)置全局變量 def fun(): # 線程池執(zhí)行的函數(shù) while a: # 線程池中的循環(huán)代碼,每次循環(huán)都檢查一遍變量a的值 time.sleep(0.1) # 線程需要執(zhí)行的具體代碼 print('1') tp = ThreadPoolExecutor(5) # 創(chuàng)建線程池 for i in range(10): tp.submit(fun) # 向線程池提交任務(wù) time.sleep(1) a = False # 需要結(jié)束線程池任務(wù)時,執(zhí)行該代碼 tp.shutdown() # 關(guān)閉線程池
方法二、線程池中執(zhí)行的循環(huán)為調(diào)用的模塊內(nèi)的方法
比如 paramiko 庫中,sftp下載文件的方法。
這種情況可以利用回調(diào)函數(shù)進行判斷。
回調(diào)函數(shù)檢查控制變量,如果檢測到需要停止執(zhí)行時,執(zhí)行sys.exit()結(jié)束退出線程
from concurrent.futures import ThreadPoolExecutor import sys import time a = True def call(): # 定義退出的函數(shù) if not a: print('線程結(jié)束退出') sys.exit() # 退出 def fun(callback=None): # 模擬sftp.get方法,循環(huán)執(zhí)行,并且有回調(diào)函數(shù) while True: time.sleep(0.1) print('1') if callback != None: callback() # 每次循環(huán)調(diào)用回調(diào)函數(shù),進行判斷是否需要結(jié)束線程 tp = ThreadPoolExecutor(5) for i in range(10): tp.submit(fun, call) time.sleep(1) a = False tp.shutdown()
到此這篇關(guān)于python QT界面關(guān)閉,線程池的線程跟隨退出解決思路方法的文章就介紹到這了,更多相關(guān)python QT界面關(guān)閉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django搭建項目配置環(huán)境和創(chuàng)建表過程詳解
這篇文章主要介紹了django搭建項目配置環(huán)境和創(chuàng)建表過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07Python中標(biāo)準(zhǔn)庫OS的常用方法總結(jié)大全
python中的OS庫提供了使用各種操作系統(tǒng)功能的接口。是經(jīng)常用到的一個庫,所以這篇文章主要給大家總結(jié)介紹了關(guān)于Python中標(biāo)準(zhǔn)庫OS的常用方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。2017-07-07python中requests使用代理proxies方法介紹
這篇文章主要介紹了python中requests使用代理proxies方法介紹,具有一定參考價值,需要的朋友可以了解下。2017-10-10python+pytest接口自動化之token關(guān)聯(lián)登錄的實現(xiàn)
公司某管理后臺系統(tǒng),登錄后返回token,接著去請求其他接口時請求頭中都需要加上這個token,否則提示請先登錄,今天通過本文給大家介紹下python+pytest接口自動化之token關(guān)聯(lián)登錄的實現(xiàn),感興趣的朋友一起看看吧2022-04-04