Python3 多线程
多线程核心作用:让多个任务同时跑,不用排队,大幅提高效率。
Python 自带多线程模块 threading,无需安装,直接 import 就能用。
多线程可以让程序同时处理多个任务
这里是入门语法就简单介绍一下多线程的用法,不过多讨论,避免内容晦涩。
创建多线程任务
- 主要靠 threading.Thread 创建一个线程,传入方法名和方法的参数,参数后面要有逗号
- 获取到线程之后再通过线程的 start()方法开启线程
- 线程执行时异步的,不是像我们平常认为那样按照代码顺序执行的。
import time
import threading
def work(name):
print(f"任务 {name} 开始执行")
time.sleep(2)
print(f"任务 {name} 执行完毕")
t1 = threading.Thread(target=work,args=("A",))
t2= threading.Thread(target=work,args=("B",))
t1.start()
t2.start()
print("任务执行完成")
# 任务 A 开始执行
# 任务 B 开始执行
# 任务执行完成
# 任务 A 执行完毕
# 任务 B 执行完毕等待线程执行完毕
- 上面的例子可以看到开启的线程任务还没有结束,主线程的任务执行完成就输出了
- 如果我们需要等待所有线程结束,就需要使用到 线程的 join 方法
import time
import threading
def work(name):
print(f"任务 {name} 开始执行")
time.sleep(2)
print(f"任务 {name} 执行完毕")
t1 = threading.Thread(target=work,args=("A",))
t2= threading.Thread(target=work,args=("B",))
t1.start()
t2.start()
t1.join()
t2.join()
print("任务执行完成")
#
# 任务 A 开始执行
# 任务 B 开始执行
# 任务 A 执行完毕
# 任务 B 执行完毕
# 任务执行完成循环创建线程
- 除了一个个的开启线程,我们还可以结合循环语句创建线程
- 并把返回的线程加入到一个列表中
- 通过遍历这个列表来做到循环等待线程结束
import time
import threading
def work(name):
print(f"任务 {name} 开始执行")
time.sleep(2)
print(f"任务 {name} 执行完毕")
thread_list = []
for x in range(1,6):
t = threading.Thread(target=work,args=(x,))
t.start()
thread_list.append(t)
for t in thread_list:
t.join()
print("任务全部完成")
#
# 任务 1 开始执行
# 任务 2 开始执行
# 任务 3 开始执行
# 任务 4 开始执行
# 任务 5 开始执行
# 任务 1 执行完毕
# 任务 2 执行完毕
# 任务 3 执行完毕
# 任务 4 执行完毕
# 任务 5 执行完毕
# 任务全部完成
更新时间:2026-06-11 16:33:29
阅读量:11