微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当旧线程死亡时重新启动函数

如何解决当旧线程死亡时重新启动函数

我正在处理一些依赖于 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 举报,一经查实,本站将立刻删除。