gpt4 book ai didi

python - 从命令行调用的 python 脚本中的多个线程

转载 作者:行者123 更新时间:2023-12-01 05:25:39 26 4
gpt4 key购买 nike

在我当前在 web.py 中实现的网络服务器上,我使用以下方法定期执行操作:

import threading    

def periodicAction():
# do something
threading.Timer(time_interval, periodicAction).start() # when finished, wait and then start same function in a new thread

periodicAction() # start the method

虽然它工作正常(意味着它做了它应该做的事情),但我仍然有问题,当我从命令行测试它时,控制台没有响应(我仍然可以输入,但它没有影响,即使 ctrl + c 也不会停止程序)。这是正常行为还是我做错了什么?

最佳答案

后台线程仍在运行,因此如果主线程完成,它将永远等待,在这种情况下。 (这是如何等待 Ctrl-C 不起作用的副作用。)如果您不希望这样,可以调用 setDaemon(True),这使得线程成为“守护进程”——这意味着当主线程完成时它将被强制关闭:

def periodicAction():
print "do something"
t = threading.Timer(1.0, periodicAction)
t.setDaemon(True)
t.start()

关于python - 从命令行调用的 python 脚本中的多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com