Python 线程退出代码

标签 python multithreading exit-code

有没有办法判断一个线程是正常退出还是异常退出?

最佳答案

如前所述,Thread 类的包装器可以捕获该状态。这是一个例子。

>>> from threading import Thread
>>> class MyThread(Thread):
    def run(self):
        try:
            Thread.run(self)
        except Exception as err:
            self.err = err
            pass # or raise err
        else:
            self.err = None


>>> mt = MyThread(target=divmod, args=(3, 2))
>>> mt.start()
>>> mt.join()
>>> mt.err
>>> mt = MyThread(target=divmod, args=(3, 0))
>>> mt.start()
>>> mt.join()
>>> mt.err
ZeroDivisionError('integer division or modulo by zero',)

关于Python 线程退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/986616/

相关文章:

python - 向列表中的每个项目添加一个字符

python - Pandas Dataframe 分组显示

javascript - 如何在nodejs中的单独线程上执行dos命令?

java - 下面的死锁场景中编写的代码是什么样的?

Ruby:返回非零退出状态

python - 在 wxPython 中使用线程连续更新 GUI 的好方法吗?

python - 如何解析 csv 文件中的字段以在 pandas 数据框中创建附加行?

java - 如何从 ThreadPoolExecutor 获取当前正在运行和排队的线程数?

linux - 为什么 "$?"条件下 "if"的值变了?

Perl:从 'system' 命令捕获正确的返回值