我本来是想做一个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或者其他的外部干扰结束它呢?谢谢了先!
守护线程不能是唯一一个正在运行的线程,必须依附于其他非守护线程才能持续运行。