itz*_*cky 1 python concurrency python-asyncio
asyncio模块的描述是:
该模块提供了使用协同程序编写单线程并发代码,通过套接字和其他资源多路复用I/O访问,运行网络客户端和服务器以及其他相关原语的基础结构.
我一直在阅读有关新的和非凡的asyncio python模块/包/无论如何.我知道有python GIL,因此asyncio非常适合GIL,因为(目的是)你在一个线程上用事件循环来管理事物.什么是并发?好吧,似乎I/O似乎是并发的.我相信I/O操作由操作系统处理.那么在asyncio的内部,它是否编写了一个利用操作系统给出的函数的并发C扩展?
在asyncio中,通过组合许多概念来实现单线程IO并发:
future -------------------+---------+
| |
generator ---> coroutine -+-> task -+-> base event loop -+-> selector event loop
|
select ---> selector ------------------------------------+
Run Code Online (Sandbox Code Playgroud)
然而,正如古玩所证明的那样,没有未来就有可能达到同样的目的:
generator ---> coroutine -+-> task -+-> kernel
|
select ---> selector ---------------+
Run Code Online (Sandbox Code Playgroud)
古玩: