如何解决当旧线程死亡时重新启动函数
我正在处理一些依赖于 websocket 数据的项目。 有时会话会从 API 的另一端过期。 这就是我的线程的声明方式。
streaming_thread = threading.Thread(target=stream_live_load)
streaming_thread.start()
我只是想知道如何在线程死亡时使用线程 ID/Number 重新启动并在循环中再次重新启动上述内容,直到我专门将其杀死。
解决方法
一旦线程在 Python 中退出,您将无法重新启动它。您必须编写代码来检查正在运行的线程的状态,如果它退出,则显式地重新初始化一个新的 Thread 对象,然后启动新实例。
当然,您可以编写一个容器对象来封装此行为。
import threading
from time import sleep
def thread_worker(arg1,arg2,arg3):
print("run({0},{1},{2})".format(arg1,arg3))
sleep(5)
while True:
print("Restarting thread")
th = threading.Thread( target = thread_worker,args = (2,3,4) )
th.start()
while th.is_alive():
sleep(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。