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

asyncio.md

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

1> **Источник:** https://python-all.ru/3.11/library/asyncio.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`asyncio`](https://python-all.ru/3.11/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.11/library/asyncio-task.html#coroutine) конкурентно и полного контроля над их выполнением;33- выполнения [сетевого ввода-вывода и IPC](https://python-all.ru/3.11/library/asyncio-stream.html#asyncio-streams);34- управления [подпроцессами](https://python-all.ru/3.11/library/asyncio-subprocess.html#asyncio-subprocess);35- распределения задач через [очереди](https://python-all.ru/3.11/library/asyncio-queue.html#asyncio-queues);36- [синхронизации](https://python-all.ru/3.11/library/asyncio-sync.html#asyncio-sync) конкурентного кода;3738Кроме того, существуют **низкоуровневые** API для *разработчиков библиотек и фреймворков*, чтобы:3940- создания и управления [циклами событий](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-event-loop), которые предоставляют асинхронные API для [сети](https://python-all.ru/3.11/library/asyncio-eventloop.html#loop-create-server), запуска [подпроцессов](https://python-all.ru/3.11/library/asyncio-eventloop.html#loop-subprocess-exec), обработки [сигналов ОС](https://python-all.ru/3.11/library/asyncio-eventloop.html#loop-add-signal-handler) и т.д.;41- реализации эффективных протоколов с помощью [транспортов](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio-transports-protocols);42- [связывания](https://python-all.ru/3.11/library/asyncio-future.html#asyncio-futures) библиотек и кода на основе колбэков с синтаксисом async/await.4344[Доступность](https://python-all.ru/3.11/library/intro.html#availability): not Emscripten, not WASI.4546Этот модуль не работает или недоступен на платформах WebAssembly `wasm32-emscripten` и `wasm32-wasi`. См. [платформы WebAssembly](https://python-all.ru/3.11/library/intro.html#wasm-availability) для получения дополнительной информации.4748asyncio REPL4950Можно поэкспериментировать с `asyncio` конкурентным контекстом в REPL:5152```pycon53$ python -m asyncio54asyncio REPL ...55Use "await" directly instead of "asyncio.run()".56Type "help", "copyright", "credits" or "license" for more information.57>>> import asyncio58>>> await asyncio.sleep(10, result='hello')59'hello'60```6162Возбуждает [событие аудита](https://python-all.ru/3.11/library/sys.html#auditing) `cpython.run_stdin` без аргументов.6364Изменено в версии 3.11.10: (также 3.10.15, 3.9.20 и 3.8.20) Вызывает события аудита.6566Справочные материалы6768API высокого уровня6970- [Запускающие объекты](https://python-all.ru/3.11/library/asyncio-runner.html)71- [Корутины и задачи](https://python-all.ru/3.11/library/asyncio-task.html)72- [Потоки данных](https://python-all.ru/3.11/library/asyncio-stream.html)73- [Примитивы синхронизации](https://python-all.ru/3.11/library/asyncio-sync.html)74- [Подпроцессы](https://python-all.ru/3.11/library/asyncio-subprocess.html)75- [Очереди](https://python-all.ru/3.11/library/asyncio-queue.html)76- [Исключения](https://python-all.ru/3.11/library/asyncio-exceptions.html)7778API низкого уровня7980- [Цикл событий](https://python-all.ru/3.11/library/asyncio-eventloop.html)81- [Future](https://python-all.ru/3.11/library/asyncio-future.html)82- [Транспорты и протоколы](https://python-all.ru/3.11/library/asyncio-protocol.html)83- [Политики](https://python-all.ru/3.11/library/asyncio-policy.html)84- [Поддержка платформ](https://python-all.ru/3.11/library/asyncio-platforms.html)85- [Расширение](https://python-all.ru/3.11/library/asyncio-extending.html)8687Руководства и учебные пособия8889- [Индекс API высокого уровня](https://python-all.ru/3.11/library/asyncio-api-index.html)90- [Индекс API низкого уровня](https://python-all.ru/3.11/library/asyncio-llapi-index.html)91- [Разработка с asyncio](https://python-all.ru/3.11/library/asyncio-dev.html)9293> **Примечание**94>95> Исходный код asyncio можно найти в [Lib/asyncio/](https://python-all.ru/src/3.11/Lib/asyncio).96