Concurrent Execution

Concurrent Execution #

https://docs.python.org/zh-cn/3.13/library/concurrency.html

并发工具选择将取决于任务的类型(CPU密集型 vs IO密集型)以及偏好的开发风格(事件驱动的协作式多任务 vs 抢占式多任务处理)。

并发技术对比:

  • 多线程可以应用于大多数场景。但由于GIL,多线程不适合计算密集型并发任务。
  • 多进程可以充分利用多核处理器的多个内核,但需要考虑进程间的通信成本。如果使用共享内存,访问共享对象又会让代码变得复杂。
  • concurrent.futures模块定义了一个抽象future,它可以通过几乎相同的语法使用线程和进程。通过它可以很容易地在进程和线程间切换,查看哪种方法更快。
  • asyncio中的协程,所以没有真正地并行处理;协程之间的控制允许单个线程在等待I/O和计算之间交替执行。

concurrent.futures, asyncio提供了比底层库更易使用的接口。

asyncIO是Python并发编程的最新技术。它结合future和事件循环的概念,引入了协程。这是一种非常优雅和易于理解的编写响应式程序的方法,不会浪费时间等待输入或其他I/O操作。

© 2025 青蛙小白 | 总访问量 | 总访客数