多线程是Python中实现并发的常用方式,适用于I/O密集型任务。以下是核心知识点梳理:
1. 线程基础概念
- 线程是操作系统调度的最小单元,共享进程内存空间
- 通过
threading
模块创建线程(推荐)或thread
模块(已弃用) - 线程间通信需通过共享变量或队列实现
2. 线程创建与启动
import threading
def worker():
"""线程执行函数"""
print("线程正在运行")
# 创建线程
t = threading.Thread(target=worker)
# 启动线程
t.start()
t.join() # 等待线程完成
3. 线程同步机制🔒
- 锁(Lock):
threading.Lock()
实现互斥访问 - 条件变量(Condition):
threading.Condition()
协调线程状态 - 事件(Event):
threading.Event()
用于线程间通信
4. 线程池管理⚙️
from concurrent.futures import ThreadPoolExecutor
def task(n):
return n * n
with ThreadPoolExecutor(max_workers=3) as executor:
results = executor.map(task, [1,2,3,4,5])
print(list(results))
5. 注意事项⚠️
- 共享资源需加锁防止竞态条件
- 避免死锁(Deadlock)场景
- Python全局解释器锁(GIL)限制多线程CPU密集型性能
- 使用
concurrent.futures
替代原始线程模块
了解更多,请访问:/zh/tutorials/python_concurrency