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-07
Python中標(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-07
python中requests使用代理proxies方法介紹
這篇文章主要介紹了python中requests使用代理proxies方法介紹,具有一定參考價值,需要的朋友可以了解下。2017-10-10
python+pytest接口自動化之token關(guān)聯(lián)登錄的實現(xiàn)
公司某管理后臺系統(tǒng),登錄后返回token,接著去請求其他接口時請求頭中都需要加上這個token,否則提示請先登錄,今天通過本文給大家介紹下python+pytest接口自動化之token關(guān)聯(lián)登錄的實現(xiàn),感興趣的朋友一起看看吧2022-04-04

