请问:Python多线程的daemon为什么运行一次就终止?
我本来是想做一个cron job,也就是让Python可以周期性地循环一个叫subtask的任务。
def subtask():
next_call = time.time()
while True:
print (time.ctime(), datetime.datetime.now())
next_call = next_call + 1;
time.sleep(next_call - time.time())
def PeriodlTest():
timerThread = threading.Thread(target=subtask)
# timerThread.setDaemon(True) # 不能设置daemon=true,会只运行一次就终止!
# timerThread.daemon = True # 不能设置daemon=true,会只运行一次就终止!
timerThread.start()
运行PeriodlTest()时,如果不加daemon=true那一句,那么程序会无休止地运行下去,即使ctrl+C也无法结束。可以一旦加daemon=true那一句,那么PeriodlTest()会只运行一次subtask就终止。
请问这个daemon应该怎么解决呢?怎么才能让我可以用ctrl+C或者其他的外部干扰结束它呢?谢谢了先!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
守护线程不能是唯一一个正在运行的线程,必须依附于其他非守护线程才能持续运行。