[英]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.