结合.start()的Python3线程不会创建join属性

时间:2019-03-03 17:15:14

标签: python python-3.x python-multithreading

这很好:

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'对象没有属性'join'

我会认为这些陈述是等效的。有什么不同?

1 个答案:

答案 0 :(得分:2)

$conn = $this->em->getConnection();
$sql = 'SELECT tmp.username FROM (SELECT username, id FROM entries ORDER BY id DESC limit 1000) AS tmp GROUP BY tmp.id ORDER BY RAND() LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute();

threading.Thread(target = myfunc)返回一个线程对象,但是object.start()返回None。这就是为什么出现AttributeError的原因。