我正在处理一个依赖于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,arg2,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)