日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python 鍵盤中斷子線程及graceful exiting方案

系統(tǒng) 1698 0

最近需要實(shí)現(xiàn)一個(gè)服務(wù)程序的graceful exiting,保證在退出前關(guān)閉所有已創(chuàng)建的子線程

python借助 KeyboardInterrupted 異常響應(yīng)鍵盤中斷,因此首先嘗試在子線程中try-catch這個(gè)異常(失敗)

查閱原因,鍵盤中斷只有主線程可以響應(yīng)并處理,子線程無法收到這個(gè)異常。因此可以使用類似這樣的結(jié)構(gòu):

          
            cond = True

def start_task():
    while cond:
        # do something

def terminate_task():
    # break some conditions
    cond = False

def main():
    _t = Thread(target=start_task)
    _t.start()
    try:
        while True:
            pass
    finally:
        terminate_task()
        _t.join()

if __name__ == '__main__':
    main()        
          
        

除此之外,查閱資料發(fā)現(xiàn)python的 signal 包可以實(shí)現(xiàn)類似java的鉤子,處理程序終止信號。用法可以參考https://blog.csdn.net/weixin_42350212/article/details/80588973


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 德令哈市| 英山县| 顺义区| 英吉沙县| 平安县| 周宁县| 固原市| 云安县| 墨江| 青海省| 嘉峪关市| 吴川市| 大名县| 民权县| 都江堰市| 台南县| 晴隆县| 锦州市| 佛山市| 大港区| 阿拉善左旗| 石首市| 新兴县| 铁岭县| 湟源县| 木兰县| 齐齐哈尔市| 兴海县| 枣阳市| 绥德县| 南京市| 岳阳市| 高碑店市| 平远县| 临城县| 岳阳市| 冀州市| 淳安县| 澄城县| 左云县| 富锦市|