Python面试题更新 2026-08-05

在 Python 开发中,多线程和多进程分别适用于哪些典型场景?各自有哪些优点和缺点?

技术原理方案权衡Python

考察说明

考查对 Python 并发编程中多线程与多进程适用场景及优劣的理解,以及区分两者差异的能力。

回答思路

  1. 【回答框架 1】多线程在 Python 中适用于 I/O 密集型任务,例如文件读写、网络请求、数据库交互等场景。因为线程共享进程内存,上下文切换开销较小,但在 CPython 中受 GIL 限制,无法利用多核并行执行 CPU 密集任务。
  2. 【回答框架 2】多进程适用于 CPU 密集型任务,例如图像处理、计算密集算法、科学计算等。每个进程拥有独立 GIL 和内存空间,可以真正并行,但进程创建和上下文切换开销较大,进程间通信需要额外机制如 multiprocessing、队列或管道。
  3. 【回答框架 3】从优缺点看,多线程优点是开发简单、共享数据方便、资源开销小,但 GIL 导致并行受限且线程安全需要加锁;多进程能够利用多核并行,稳定性高(进程间隔离),但资源消耗大、通信复杂、编程难度增加。
  4. 【回答框架 4】选择时,根据任务类型和资源限制综合考虑:I/O 密集优先多线程(也可用协程),CPU 密集优先多进程;同时考虑代码复杂度、可维护性和部署环境。
  5. 【关键点 1】I/O 密集型任务适合多线程,CPU 密集型任务适合多进程
  6. 【关键点 2】CPython 的 GIL 使得多线程无法并行执行 CPU 密集代码
  7. 【关键点 3】多进程开销大但可并行,多线程开销小但受 GIL 限制
  8. 【关键点 4】线程间共享内存易但需同步,进程间独立但通信成本高
  9. 【易错点 1】不要认为多线程一定能提高 CPU 密集任务性能,GIL 会限制并行
  10. 【易错点 2】不要混淆线程安全与进程安全,多进程天然隔离但仍需通信
  11. 【易错点 3】仅凭任务类型定论可能忽略实际环境,实际部署需压测验证