Python调用thread.is_alive()/isAlive()检测线程状态报错如何解决
问题根因
threading.Thread.start() 方法无返回值,你在代码中链式调用start()并将其返回值赋给了thread变量,导致thread实际存储的是None,而非Thread类的实例对象,自然无法调用线程实例的is_alive()/isAlive()方法,抛出AttributeError。
修复方案
拆分线程实例创建和启动的代码为两步,先把Thread实例赋值给变量,再单独调用启动方法:
# 先创建线程实例,赋值给thread变量 thread = threading.Thread(target=editing, args=(values['_CHECK_'], files, directory, window, progress_bar,), daemon=True) # 单独调用start方法启动线程 thread.start()
修复后即可正常调用方法检测线程运行状态,Python 3 更推荐使用官方主推的is_alive()写法:
if not thread.is_alive(): pass
内容的提问来源于stack exchange,提问作者user16840167
相关产品推荐
相关产品推荐

