我已经使用过像Twisted和Tornado这样的Python异步框架。此外,我知道Python已经通过asyncio模块实现了本机的异步调用。我认为(线程、多处理)和异步调用是不同的概念。但是不久前,我看了几个与线程和多处理相关的视频,似乎所有这些异步技术都是基于它们构建的。这是真的吗?
我已经使用过像Twisted和Tornado这样的Python异步框架。此外,我知道Python已经通过asyncio模块实现了本机的异步调用。我认为(线程、多处理)和异步调用是不同的概念。但是不久前,我看了几个与线程和多处理相关的视频,似乎所有这些异步技术都是基于它们构建的。这是真的吗?
threading
、multiprocessing
可用于实现某些调用(但它们在Python异步框架中既不是必需的也不常见)。
并发不等于并行:multiprocessing.Pool
(进程)、multiprocessing.dummy.Pool
(线程)或它们的gevent
修补版本(单线程)的简单Pool
代码之间切换。此外,如果只有一个CPU,则进程不一定会并行运行,但操作系统可以使它们并发运行。async
关键字,则它表示生成器函数--只是创建可等待对象的多种方式之一。 asyncio
不是消耗此类对象的唯一方法,例如有curio
,它使用async
函数,但后端与asyncio
无关。 推荐视频:从基础开始的Python并发编程: LIVE!。