Python3 线程组合 .start() 不创建连接属性
Python3 threading combining .start() doesn't create the join attribute
这很好用:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc)
t.start()
t.join()
print('done')
然而,这显然正确地创建和执行了线程:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc).start()
t.join()
print('done')
当它命中 join() 时生成以下致命错误:
AttributeError: 'NoneType' object has no attribute 'join'
我本以为这些说法是等价的。有什么不同?
t = threading.Thread(target=myfunc).start()
threading.Thread(target=myfunc) returns 一个线程对象,然而 object.start() returns None。这就是为什么会出现 AttributeError。
这很好用:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc)
t.start()
t.join()
print('done')
然而,这显然正确地创建和执行了线程:
def myfunc():
print('inside myfunc')
t = threading.Thread(target=myfunc).start()
t.join()
print('done')
当它命中 join() 时生成以下致命错误:
AttributeError: 'NoneType' object has no attribute 'join'
我本以为这些说法是等价的。有什么不同?
t = threading.Thread(target=myfunc).start()
threading.Thread(target=myfunc) returns 一个线程对象,然而 object.start() returns None。这就是为什么会出现 AttributeError。