# 要引用Thread,还有threading,才能使用下面的方法
# 在这里threading就好像一个线程大管家,通过它可以调用方法获取相关信息 并进行管理
from threading import Thread
import threading
thread_list = [] # 将子线程加入列表
t = threading.current_thread()
print(f'{t.name}-{t.ident}') #打印线程名称和id
# 设置daemon为True,则子线程为守护进程,当主进程结束后,子线程跟着退出
# 设置daemon为False,主线程退出时,对子线程没有影响
thread_1=Thread(target=函数名,args=(传参,),daemon=0/1) # args为数组,所以参数后面一定要带“,”
thread_2=Thread(target=函数名,args=(传参,),daemon=0/1)
thread_3=Thread(target=函数名,args=(传参,),daemon=0/1)
thread_1.start()
thread_2.start()
thread_3.start()
thread_list.append(thread_1)
thread_list.append(thread_2)
thread_list.append(thread_3)
# 获取当前线程为主线程名称和id号并打印
t = threading.current_thread()
print(f'{t.name}-{t.ident}')
# 轮询打印线程列表中所有子线程信息
for t in thread_list:
print(t.is_alive()) # 打印线程是否活动
print(t.name) # 打印线程名称
print(t.ident) # 打印线程id
t.join() # 使用join方法可以让当前线程(这里指主线程)要等待子线程执行完毕后,在执行主线程后面的代码
# 通过threading.enumerate()方法遍历所有进程的信息
for t in threading.enumerate():
print(f'{t.ident}-{t.name}') # 遍历所有线程id和名称