import threading
import time
deftd():
time.sleep(1)print('当前线程名字是:'+ threading.current_thread().name)
time.sleep(1)if __name__ =='__main__':
s_time = time.time()print('这是主线程:'+ threading.current_thread().name)
tdg_list=[]for i inrange(5):
t = threading.Thread(target=td)
tdg_list.append(t)for t in tdg_list:
t.start()print('主线程结束了!', threading.current_thread().name)print('一共用时:', time.time()-s_time)
案例一情况是主线程结束了,子线程还没结束,然后子线程自己运行,明显是错误的!但是不报错
案例二
import threading
import time
deftd():
time.sleep(1)print('当前线程名字是:'+ threading.current_thread().name)
time.sleep(1)if __name__ =='__main__':
s_time = time.time()print('这是主线程:'+ threading.current_thread().name)
tdg_list=[]for i inrange(5):
t = threading.Thread(target=td)
tdg_list.append(t)for t in tdg_list:
t.setDaemon(True)
t.start()print('主线程结束了!', threading.current_thread().name)print('一共用时:', time.time()-s_time)
案例二情况是主线程结束了,而子线程还没开始,导致子线程没有运行,所以也是错误的。但不报错
案例三
import threading
import time
deftd():
time.sleep(1)print('当前线程名字是:'+ threading.current_thread().name)
time.sleep(1)if __name__ =='__main__':
s_time = time.time()print('这是主线程:'+ threading.current_thread().name)
tdg_list=[]for i inrange(5):
t = threading.Thread(target=td)
tdg_list.append(t)for t in tdg_list:
t.setDaemon(True)
t.start()for i in tdg_list:
t.join()print('主线程结束了!', threading.current_thread().name)print('一共用时:', time.time()-s_time)