🧠 并发 vs 并行
- 并发(Concurrency):单核处理器通过任务切换实现多任务处理,适合I/O密集型场景
- 并行(Parallelism):多核处理器同时执行多个任务,适合CPU密集型场景
⚙️ 核心并发工具
threading 模块
线程示意图
用于创建和管理线程,适合IO操作(如网络请求、文件读写)asyncio 库
异步编程模型
基于协程实现异步IO,支持async/await
语法
深入学习asynciomultiprocessing 模块
多进程架构
通过多进程实现真正的并行计算,适合CPU密集型任务
📚 高级技巧
- 线程池管理:使用
ThreadPoolExecutor
优化资源利用 - 异步任务调度:
asyncio
的async def
和await
关键字实现非阻塞调用 - 并发安全:通过
threading.Lock
防止多线程数据竞争
查看并发安全最佳实践
🚀 性能优化建议
- 使用
concurrent.futures
统一管理线程/进程池 - 对IO密集型任务优先选择异步编程模型
- 通过
multiprocessing
实现多核并行计算 - 合理设置
asyncio
的事件循环策略