Sobes.tech
Back to questions
Junior — Middle
64

Можешь рассказать о различных способах использования модуля asyncio в Python?

Companies where asked
Магнит Тех

Answer from AI

sobes.tech AI

Модуль asyncio в Python используется для написания асинхронного кода, который позволяет выполнять несколько операций одновременно без блокировки основного потока.

Основные способы использования asyncio:

  • Асинхронные функции (coroutines): объявляются с помощью async def и могут использовать await для ожидания других асинхронных операций.

  • Запуск событийного цикла: с помощью asyncio.run() можно запустить корутину и обработать асинхронные задачи.

  • Создание задач (tasks): с помощью asyncio.create_task() можно запустить корутину параллельно с другими.

  • Работа с асинхронными примитивами: такими как очереди (asyncio.Queue), блокировки (asyncio.Lock), семафоры и т.д.

Пример простого асинхронного кода:

import asyncio

async def say_after(delay, message):
    await asyncio.sleep(delay)
    print(message)

async def main():
    task1 = asyncio.create_task(say_after(1, "Hello"))
    task2 = asyncio.create_task(say_after(2, "World"))
    await task1
    await task2

asyncio.run(main())

Этот код запускает две задачи параллельно, не блокируя выполнение.