Документация Python неофициальный перевод

asyncio.md

90 строк · 5.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.9/library/asyncio.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`asyncio`](https://python-all.ru/3.9/library/asyncio.html#module-asyncio) – Асинхронный ввод-вывод89---1011Привет, мир!1213```python14import asyncio1516async def main():17    print('Hello ...')18    await asyncio.sleep(1)19    print('... World!')2021asyncio.run(main())22```2324asyncio – это библиотека для написания **конкурентного** кода с использованием синтаксиса **async/await**.2526asyncio используется как основа для нескольких асинхронных фреймворков Python, которые предоставляют высокопроизводительные сетевые и веб-серверы, библиотеки подключения к базам данных, распределённые очереди задач и т.д.2728asyncio часто отлично подходит для задач, связанных с вводом-выводом, и высокоуровневого **структурированного** сетевого кода.2930asyncio предоставляет набор **высокоуровневых** API для:3132- [запуска корутин Python](https://python-all.ru/3.9/library/asyncio-task.html#coroutine) конкурентно и полного контроля над их выполнением;33- выполнения [сетевого ввода-вывода и IPC](https://python-all.ru/3.9/library/asyncio-stream.html#asyncio-streams);34- управления [подпроцессами](https://python-all.ru/3.9/library/asyncio-subprocess.html#asyncio-subprocess);35- распределения задач через [очереди](https://python-all.ru/3.9/library/asyncio-queue.html#asyncio-queues);36- [синхронизации](https://python-all.ru/3.9/library/asyncio-sync.html#asyncio-sync) конкурентного кода;3738Кроме того, существуют **низкоуровневые** API для *разработчиков библиотек и фреймворков*, чтобы:3940- создавать и управлять [циклами событий](https://python-all.ru/3.9/library/asyncio-eventloop.html#asyncio-event-loop), которые предоставляют асинхронные API для [`networking`](https://python-all.ru/3.9/library/asyncio-eventloop.html#asyncio.loop.create_server), запуска [`subprocesses`](https://python-all.ru/3.9/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec), обработки [`OS signals`](https://python-all.ru/3.9/library/asyncio-eventloop.html#asyncio.loop.add_signal_handler) и т.д.;41- реализации эффективных протоколов с помощью [транспортов](https://python-all.ru/3.9/library/asyncio-protocol.html#asyncio-transports-protocols);42- [связывания](https://python-all.ru/3.9/library/asyncio-future.html#asyncio-futures) библиотек и кода на основе колбэков с синтаксисом async/await.4344asyncio REPL4546Можно поэкспериментировать с `asyncio` конкурентным контекстом в REPL:4748```pycon49$ python -m asyncio50asyncio REPL ...51Use "await" directly instead of "asyncio.run()".52Type "help", "copyright", "credits" or "license" for more information.53>>> import asyncio54>>> await asyncio.sleep(10, result='hello')55'hello'56```5758Возбуждает [событие аудита](https://python-all.ru/3.9/library/sys.html#auditing) `cpython.run_stdin` без аргументов.5960Изменено в версии 3.9.20: (также 3.8.20) Порождает события аудита.6162Справочные материалы6364API высокого уровня6566- [Корутины и задачи](https://python-all.ru/3.9/library/asyncio-task.html)67- [Потоки данных](https://python-all.ru/3.9/library/asyncio-stream.html)68- [Примитивы синхронизации](https://python-all.ru/3.9/library/asyncio-sync.html)69- [Подпроцессы](https://python-all.ru/3.9/library/asyncio-subprocess.html)70- [Очереди](https://python-all.ru/3.9/library/asyncio-queue.html)71- [Исключения](https://python-all.ru/3.9/library/asyncio-exceptions.html)7273API низкого уровня7475- [Цикл событий](https://python-all.ru/3.9/library/asyncio-eventloop.html)76- [Future](https://python-all.ru/3.9/library/asyncio-future.html)77- [Транспорты и протоколы](https://python-all.ru/3.9/library/asyncio-protocol.html)78- [Политики](https://python-all.ru/3.9/library/asyncio-policy.html)79- [Поддержка платформ](https://python-all.ru/3.9/library/asyncio-platforms.html)8081Руководства и учебные пособия8283- [Индекс API высокого уровня](https://python-all.ru/3.9/library/asyncio-api-index.html)84- [Индекс API низкого уровня](https://python-all.ru/3.9/library/asyncio-llapi-index.html)85- [Разработка с asyncio](https://python-all.ru/3.9/library/asyncio-dev.html)8687> **Примечание**88>89> Исходный код asyncio можно найти в [Lib/asyncio/](https://python-all.ru/src/3.9/Lib/asyncio).90