簡體   English   中英

如何停止線程python

[英]How to stop a thread python

大家好,

我試圖在程序停止時停止此線程(比如我按ctrl + C)但沒有運氣。 我試過把t1.daemon=True但是當我這樣做時,我的程序在我啟動之后就結束了。 請幫我阻止它。

def run():
    t1 = threading.Thread(target=aStream).start()

if __name__=='__main__':
    run()

做你想做的事情的一種常見方式是加入線程一段時間,如下所示:

def main():
    t = threading.Thread(target=func)
    t.daemon = True
    t.start()
    try:
        while True:
            t.join(1)
    except KeyboardInterrupt:
        print "^C is caught, exiting"

在具有超時(不是permament join() )的循環中執行此操作非常重要,因為信號僅由主線程捕獲,因此如果主線程被阻塞,則永遠不會結束。

另一種方法是設置一些事件讓非守護進程線程知道何時完成,對我來說看起來更讓人頭痛。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM