1. 
        

      2. Vultr搬瓦工vps國外域名網站教程IT資訊主機商

        python QT界面關閉線程池的線程跟隨退出完美解決方案

        時間:2022-11-30  來源:  作者:柳道 我要糾錯

        方法一、線程池執行的循環代碼為自己寫的情況
         


        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()  # 關閉線程池

          定義一個全局變量,默認為T,當QT界面關閉后,將該變量值改為F。

          線程執行的循環代碼內增加一個判斷方法,每次循環之前對全局變量進行判斷,如果結果為T則進行循環、如果為F,則break退出循環,結束線程

        方法二、線程池中執行的循環為調用的模塊內的方法

          比如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界面關閉,線程池的線程跟隨退出解決思路方法的文章就介紹到這了

      3. 上一篇:Win11使用flushdns命令后無法上網的解決方法
      4. 下一篇:返回列表
      5. 無相關信息
        主機資訊
        主機信息
        Host Gnome英國
        Host Gnome英國
        Sugarhosts
        Sugarhosts
        Vultr
        Vultr
        GT Host
        GT Host
        BandwagonHost搬瓦工
        BandwagonHost搬瓦工
        INCX
        INCX
        Ram Node
        Ram Node
        IO Zoom
        IO Zoom
        推薦信息

        相關文章

        無相關信息

        欄目更新

        Copyright © 2020 ushost.cn Inc. All Rights Reserved. 美國主機中文網 版權所有
        鄂ICP備06013414號-8
        彩票平台