Python 面试题
目录

Python 中如何进行并发编程?

· 约 3 分钟读完 · 第 162 / 171 章

推荐答案

在 Python 中,可以通过以下几种方式进行并发编程:

  1. 多线程:使用 threading 模块。
  2. 多进程:使用 multiprocessing 模块。
  3. 异步编程:使用 asyncio 模块。
  4. 协程:使用 asyncio 和 async/await 语法。

多线程示例

多进程示例

异步编程示例

本题详细解读

多线程

  • 适用场景:I/O 密集型任务,如文件读写、网络请求等。
  • 优点:线程间共享内存,通信方便。
  • 缺点:由于 GIL(全局解释器锁)的存在,Python 的多线程无法真正并行执行 CPU 密集型任务。

多进程

  • 适用场景:CPU 密集型任务,如计算密集型操作。
  • 优点:每个进程有独立的 GIL,可以充分利用多核 CPU。
  • 缺点:进程间通信较复杂,开销较大。

异步编程

  • 适用场景:I/O 密集型任务,尤其是需要处理大量并发 I/O 操作的场景。
  • 优点:高效利用单线程,避免线程切换的开销。
  • 缺点:代码复杂度较高,需要理解事件循环和协程。

协程

  • 适用场景:与异步编程类似,适用于 I/O 密集型任务。
  • 优点:代码简洁,易于理解和管理。
  • 缺点:需要 Python 3.7+ 支持,且对 CPU 密集型任务效果不佳。

通过合理选择并发编程方式,可以显著提升程序的执行效率。