0 问题描述
最近遇到一个问题,调用某个SDK中单例类的客户端,该类会启动一个threading.Timer后台线程去定时执行一些任务。当我的业务代码结束运行的时候必须手动执行close方法,这样很麻烦,因为
- 某个工具包使用了这个客户端,而在很多处引入包的时候都要手写关闭代码,麻烦啰嗦
- 如果我的业务代码报错,那么后台线程一直阻塞主线程关闭,那么在外部看来这个python任务一直没有执行完毕
- try-catch / with 包裹不确定的业务代码还是很麻烦啰嗦
1 例子
import threading
import time
class A():
def __init__(self) ->