Python встроенные реализации AsyncIO? - PullRequest
0 голосов
/ 04 февраля 2019

Я начал понимать AsyncIO, который в основном «приостанавливает» функцию и переходит к следующей, когда ему необходимо выполнить неблокирующие действия, такие как создание веб-запроса или открытие файла (есть другие?)

Но тогда, где находятся встроенные реализации асинхронного веб-запроса или открытия асинхронного файла?Разве AsyncIO не просто концепция без них?

Я нашел только внешние библиотеки, которые их реализуют.

Или это предполагаемый случай?Если да, то как мне реализовать собственную асинхронную библиотеку запросов / файлов?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Но тогда где же встроенные реализации асинхронного веб-запроса или открытия асинхронного файла?

Цель asyncio - предоставить инфраструктуру для построения асинхронных библиотек и фреймворков.Модуль asyncio в комплекте с Python поддерживает сокеты в клиентских и серверных соединениях, подпроцессах , инструментах синхронизации (включая очереди)), выполнение кода блокировки с использованием потоков и многопроцессорной обработки , а также обмен данными между кодом блокировки и циклом событий, выполняющимся в другом потоке .

Использованиеэтот набор инструментов в качестве основы, третьи стороны предоставили библиотеки с открытым исходным кодом для async http , file и console IO, websockets , дискорд и многие другие .

0 голосов
/ 04 февраля 2019

Python поддерживает aysnc / await для автоматического планирования в цикле событий.

aiofiles - это лицензированная библиотека Apache2, написанная на Python, для обработки файлов локального диска в приложениях asyncio.

https://github.com/Tinche/aiofiles

Для асинхронных веб-запросов

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

Для получения дополнительной асинхронной реализации, проверьте

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