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