Python内置的AsyncIO实现?

时间:2019-02-04 18:25:25

标签: python python-3.x python-asyncio python-3.7

我已经开始理解AsyncIO,它基本上是“暂停”功能,并在需要执行非阻塞操作(例如发出Web请求或打开文件)时转到下一个功能(还有其他功能吗?)

但是,异步Web请求或异步文件打开的内置实现在哪里?没有这些,不是AsyncIO只是一个概念吗?

我只找到实现它们的外部库。

这是预期的情况吗?如果是这样,我应该如何实现自己的异步请求/文件库?

2 个答案:

答案 0 :(得分:2)

  

但是,异步Web请求或异步文件打开的内置实现在哪里?

asyncio的目标是为构建异步库和框架提供 Infrastructure 。与Python捆绑在一起的asyncio模块支持clientserver连接,subprocessessynchronization tools(包括queues)中的套接字,阻塞代码的执行使用threading and multiprocessing,以及阻塞代码和different thread中运行的事件循环之间的通信。

第三方以该工具集为基础,为异步httpfileconsole IO,websocketsdiscord提供了开源库,和many more

答案 1 :(得分:0)

Python支持aysnc / await在事件循环中自动调度。

aiofiles是用Python编写的Apache2许可库,用于处理asyncio应用程序中的本地磁盘文件。

https://github.com/Tinche/aiofiles

对于异步Web请求

https://aiohttp.readthedocs.io/en/stable/

有关更多异步实现,请查看

https://github.com/python/asyncio/wiki/ThirdParty