gpt4 book ai didi

python - 将函数包装在线程中并忽略严重错误

转载 作者:行者123 更新时间:2023-12-01 06:02:22 25 4
gpt4 key购买 nike

我使用libtorrent的python版本。当我长时间运行包含许多文件的 torrent session 时,它崩溃并出现错误:

terminate called after throwing an instance of 'boost::lock_error'
what(): boost::lock_error

所以,我想我将与 torrent 相关的函数包装到一个单独的线程中,当它崩溃时,它只会杀死该线程(而不是整个应用程序):

from threading import Thread

class TWrapper (Thread) :
# ...
def run(self):
try:
run_torrent_stuff()
except:
# print message
pass


t = TWrapper()
t.run()
t.join()
# check if all OK with t, if not - restart again

我认为如果库崩溃,线程就会死亡,我将加入它到主循环中。但是,当 libtorrent 崩溃时,所有应用程序都会终止:(

为什么错误会在线程外升级?

(libtorrent是一个例子(现实生活),问题是一般性的)

最佳答案

通常如果线程崩溃,它会导致进程崩溃,如果你想避免它在单独的进程中运行libtorrent。

关于python - 将函数包装在线程中并忽略严重错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685813/

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