import time import threading def printNum(a): print ('num:',a) time.sleep(5) def ThreadTest(i): return threading.Thread(target=printNum, args=(999,)) thread_arr = [] for i in range(10): t = ThreadTest(i) thread_arr.append(t) for t in thread_arr: t.start() for t in thread_arr: t.join() print ('finished')
打印结果
Thread类:我们使用Thread类来创建新的线程
- start 线程准备就绪,等待CPU调度
- setName 为线程设置名称
- getName 获取线程名称
- setDaemon 设置为后台线程或前台线程(默认)
如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止
如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止 - join 逐个执行每个线程,执行完毕后继续往下执行,该方法是有高级用法的,代码在下面
- run 线程被cpu调度后执行Thread类对象的run方法