【发布时间】:2015-08-05 12:22:42
【问题描述】:
我一直在寻找正确的代码,但没有成功。
我有以下带有后台线程和主程序的 python 脚本。一旦后台线程遇到条件,我想重新启动脚本。希望你能帮我解决这个问题。 TIA
使用此脚本,background_stuff 和“main”同时运行。
def background_stuff():
while True:
if condition == 'True':
### restart the script
t = Thread(target=background_stuff)
t.start()
### main
if __name__ == '__main__':
while True:
#do something
【问题讨论】:
-
您需要重新启动整个脚本还是只运行主方法?
-
我认为我们需要更多信息来帮助您。需要重启的时候主线程还在运行吗?如果是这样,您可能应该在自己的线程中运行主程序,然后阅读stackoverflow.com/questions/323972/… 了解如何终止它并在达到条件后在另一个线程中重新运行主方法。
-
@Metareven,我需要重新启动整个脚本。主脚本当前正在做什么并不重要。我尝试了“运行主方法”并且 background_stuff 作业停止了,因为 main() 也是一个非终止循环。请参阅编辑后的脚本。感谢您对此进行调查。
标签: python python-2.7 background-thread