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