如何在python多线程join挂起后还能在主线程优雅的stop各个线程
因为在开发一个多线程请求客户接口的server,这个请求内部会按照客户接口的间隔时间要求进行相应的sleep, 当规定的读取配置的时间到了后(比如10分钟),线程会统一退出,主线程会通过join等待所有的线程全部退出后才重新读取配置。因为服务开始运行后,线程就会进行相应的join挂起,这个时候如果想stop进程的话,整个进程要等待所有线程退出后才会stop。之前通过模拟join的方式达到功能要求,但因为太耗费cpu,而改为原生的join实现功能,但重起一次serer就得等到所有线程退出才能开始重启。求python牛人好的思路解决,感谢
主要代码段如下:
adConfigs = [] //为每个客户的接口配置列表
for adConfig in adConfigs:
req = Requester(self.cfg, adConfig, init_load_config_time)
req.start()
self.threadList.append(req)
//原生join实现同步线程
for t in self.threadList:
t.join()
"""
# 自定义同步线程方法
while True:
alive = False
for t in self.threadList:
alive = alive or t.isAlive()
if not alive:
break
"""