asyncio
— Асинхронный ввод/вывод¶
asyncio - это библиотека для написания конкурентного кода с использованием синтаксиса async/await.
asyncio используется в качестве основы для множества асинхронных фреймворков Python, которые обеспечивают высокопроизводительные сетевые и веб-серверы, библиотеки подключения к базам данных, распределенные очереди задач и т.д.
asyncio часто идеально подходит для связанного с IO и высокоуровневого структурированного сетевого кода.
asyncio предоставляет набор высокоуровневых API для:
run Python coroutines одновременно и имеют полный контроль над их выполнением;
выполнить network IO and IPC;
управление subprocesses;
распределяйте задания через queues;
synchronize код совпадения;
Кроме того, существуют низкоуровневые API для библиотек и разработчиков фреймворков:
создают и управляют event loops, которые предоставляют асинхронные API для networking, запускают subprocesses, обрабатывают OS signals и т.д;
реализовать эффективные протоколы, используя transports;
bridge библиотеки, основанные на обратном вызове, и код с синтаксисом async/await.
Вы можете поэкспериментировать с параллельным контекстом asyncio
в REPL:
$ python -m asyncio
asyncio REPL ...
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
>>> await asyncio.sleep(10, result='hello')
'hello'
Availability: не WASI.
Этот модуль не работает или недоступен на WebAssembly. Дополнительную информацию см. в разделе Платформы WebAssembly.
Ссылка
Примечание
Исходный код asyncio можно найти в Lib/asyncio/.