Python线程和进程join()理解

import threading
import time


def run():
    time.sleep(2)
    print('当前线程名字:', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':
    start_time = time.time()
    print('主线程:', threading.current_thread().name)

    thread_list = []

    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        # t.setDaemon(True)
        t.start()
        # t.join()


    print('主线程结束')
    print('用时:', time.time() - start_time)

主线程执行完成,子线程还会继续执行完成,程序才结束

当t.setDaemon(True)启动守护进程时,主线程执行完成,子线程还没完成时,程序就会直接退出

显然,默认情况下setDaemon为False

当使用t.join(),主线程一直等待子线程完成之后,自身才结束,程序退出

join的作用体现出来,主线程任务完成,进入阻塞状态,等待其他子线程完成才终止,起到线程同步的效果!

发布了26 篇原创文章 · 获赞 0 · 访问量 588

猜你喜欢

转载自blog.csdn.net/kkLeung/article/details/104578785