线程执行的函数的 return 语句是否自动终止线程



function2执行并返回后,线程是否会被自动杀死,我是否需要join()线程或执行某些操作以确保它在function1中完全消失?

def function1():
    a = 1
    b = 2
    Thread(target=function2, args=(a,b,)).start()
def function2(a, b):
    print(a + b) 
    return()

No.线程将自行终止。join() 函数是一种方便,它告诉线程阻塞,直到子线程完成(因此,如果子线程尚未完成,则父线程不会继续(。

你可以在python控制台上看到这方面的证据(甚至在我调用t.join()之前,线程已经死了(:

>>> def function1():
...     print("Hello!")
...     return 5
... 
>>> t = threading.Thread(target=function1)
>>> t.start()
Hello!
>>> t.is_alive()
False
>>> t.join()
>>> t.is_alive()
False

最新更新