作为开发人员,我们经常遇到等待某些任务(例如输入/输出操作)可能导致程序效率低下的情况。
快一:想想这样的情况,如果有的话评论一下,我们一起讨论
在多种情况下都需要异步编程,例如:I/O 密集型操作、Web 开发、网络并发、GUI 应用程序、实时应用程序、长时间运行的任务。
在本文中,我们将探讨 Python 中从传统同步编程到异步范例的转变,揭示可提高应用程序效率和响应能力的强大概念和工具。
以下是与 Python 异步编程相关的重要关键字列表的简要说明:
模因说:“关键词,关键词,无处不在”
同步(经典顺序)编程
在同步编程中,任务以线性方式一个接一个地运行。每项任务必须在下一项任务开始之前完成,从而导致效率低下,尤其是在涉及输入/输出操作的场景中。
异步编程
异步代码允许程序发出信号,表明它需要等待某些任务(例如输入/输出 (I/O) 操作)完成。程序可以继续执行其他任务,而不是无所事事地等待。常见的 I/O 绑定操作包括网络通信、文件读/写、远程 API 调用和数据库操作。
并发,而不是多处理或多线程:
异步编程涉及一次运行一个任务,而不是多线程或多处理。在一个函数的等待时间内,可以执行另一个函数。
全局解释器锁 (GIL)
Python 中的 GIL 确保一次只有一个线程控制解释器。虽然对单线程程序没有影响,但它可能成为 CPU 密集型和多线程代码的瓶颈。
CPython
CPython 是 Python 编程语言的规范实现,分布在 python.org 上。将 CPython 与 Jython 或 IronPython