gpt4 book ai didi

multithreading - 复制死线程

转载 作者:行者123 更新时间:2023-12-03 22:43:50 25 4
gpt4 key购买 nike

我有一个子类 threading.thread 的类。在初始化线程对象的守护进程中,我定期检查线程状态。如果状态不完整且线程不活动,这意味着在执行类似于对另一台服务器的 api 调用时出现错误。

我的问题是,如果发生这种情况,是否可以复制线程对象并调用启动方法。我曾考虑在原始对象上再次调用 run 方法,但这会弄乱守护进程工作流。

非常感谢任何想法!

C

最佳答案

在守护进程中放置一个无限循环,并在出现问题时检查 isAlive()/is_alive() 方法。如果它刚刚使用相同的值启动了一个新对象。

解决问题的另一种方法是在线程对象中捕获真正的问题,然后只处理那里的问题。我假设您的 run() 方法中有一个循环。只需将循环中的所有内容放在一个 try/except 子句中,该子句将重新初始化您正在执行的任何检查其他服务器的操作。

像这样:

def run(self):
while 1:
try:
if not server.isconnected():
server.connect()

server.getsomeinfo()
except server.error as x:
server.disconnect()

time.sleep(1)

一旦出现 server.error 类型的错误,就会重新连接。您可以使解决方案更漂亮,并在重试之前添加一些时间间隔等。我已经做到了这一点,并且效果很好。

关于multithreading - 复制死线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com