【发布时间】:2013-09-27 21:17:55
【问题描述】:
我有一些定期运行的代码,并且时不时地(比如每月一次)程序似乎挂在某个地方,我不确定在哪里。
我想我会实现 [结果不完全是] 检查程序运行了多长时间的“快速修复”。我决定使用多线程来调用函数,然后在它运行时,检查时间。
例如:
import datetime
import threading
def myfunc():
#Code goes here
t=threading.Thread(target=myfunc)
t.start()
d1=datetime.datetime.utcnow()
while threading.active_count()>1:
if (datetime.datetime.utcnow()-d1).total_seconds()>60:
print 'Exiting!'
raise SystemExit(0)
但是,这不会关闭另一个线程 (myfunc)。
杀死另一个线程的最佳方法是什么?
【问题讨论】:
-
如果你想让其他线程在
SystemExit被提升时立即死掉,让它们成为守护线程。
标签: python multithreading