Far*_*rth 2 python python-multithreading python-3.x
这工作正常:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc)
t.start()
t.join()
print('done')
Run Code Online (Sandbox Code Playgroud)
然而,这显然是正确创建和执行线程的:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc).start()
t.join()
print('done')
Run Code Online (Sandbox Code Playgroud)
当它命中 join() 时生成以下致命错误:
AttributeError: 'NoneType' 对象没有属性 'join'
我会认为这些陈述是等效的。有什么不同吗?
小智 7
t = threading.Thread(target=myfunc).start()
Run Code Online (Sandbox Code Playgroud)
threading.Thread(target=myfunc) 返回一个线程对象,但是 object.start() 返回 None。这就是为什么会出现 AttributeError 的原因。