我已经开始理解AsyncIO,它基本上是“暂停”功能,并在需要执行非阻塞操作(例如发出Web请求或打开文件)时转到下一个功能(还有其他功能吗?)>
但是,异步Web请求或异步文件打开的内置实现在哪里?没有这些,不是AsyncIO只是一个概念吗?
我只找到实现它们的外部库。
这是预期的情况吗?如果是这样,我应该如何实现自己的异步请求/文件库?
答案 0 :(得分:2)
但是,异步Web请求或异步文件打开的内置实现在哪里?
asyncio的目标是为构建异步库和框架提供 Infrastructure 。与Python捆绑在一起的asyncio
模块支持client和server连接,subprocesses,synchronization tools(包括queues)中的套接字,阻塞代码的执行使用threading and multiprocessing,以及阻塞代码和different thread中运行的事件循环之间的通信。
第三方以该工具集为基础,为异步http,file和console IO,websockets,discord提供了开源库,和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