线程的join()方法
01.使用join()方法可以阻塞当前进程。
- 执行join()方法后,当前线程(主线程或父线程)会阻塞在调用join()方法的线程处,待其(被join线程)完成之后再执行。
- 如果阻塞的不是主线程,则主线程执行完毕之后是否关闭子线程只判断其daemon的值。
- 父线程调用子线程的join()方法后,父线程会被阻塞,等待子线程执行完毕后才能退出。
- 子线程可以被join()多次。
- join()方法有的参数包括:
- timeout,指定调用者等待多久,如果设置为None或没有设置,则一直阻塞到调用线程结束。
- join()方法的示例:
import threading
import time
def display():
for i in range(10):
time.sleep(1)
print("this is thread {}, my thread id is {}".format(threading.current_thread().name, threading.current_thread().ident))
if __name__ == "__main__":
t1 = threading.Thread(name='thread_one', target=display, daemon=True)
t1.start()
t1.join()
time.sleep(5)
print("===== i am main thread, now i closed! =====")
文档更新时间: 2021-10-04 00:19 作者:闻骏