Python 异步 IO 简介

一般来说,Python 程序是单线程的,这意味着任务被排队等待一个接一个地运行。 对于不执行任何 I/O 操作或执行极少量 I/O 操作的小程序,这可能很好。 但是对于我们需要从 API 获取数据或从远程数据库获取一些数据的程序,那么 I/O 操作可能需要相当长的时间,具体取决于网络速度。 对于这些类型的程序,我们需要 异步 I/O 或者 异步 I/O 操作以保持应用程序的响应能力。

异步 I/O 是一种并发编程范式,在 Python 中得到了来自 蟒蛇 3.4. 它允许 I/O 操作在之前的 I/O 操作等待其响应时继续进行。

现在,您可能想知道两者之间的区别 并发, 并行性, 穿线, 多处理 和在哪里 异步 I/O 适合吗? 让我们把这些分解成简单的术语。 有关更多详细信息 多线程 多处理 在 Python 中,我会推荐你​​查看我之前的文章。

并发与并行

图:并发

来源:https://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html

并发 是一种抽象,基于单个 CPU 的计算机在同一计时器上至少看似同时在多个任务上取得进展。 在执行期间同时执行多个任务时,CPU 在这些任务之间切换,如上图所示。