Sobes.tech
Junior — Middle

Kas saaksite selgitada, kuidas Pythonis on rakendatud asünkroonne ülesannete töötlemine ja kuidas see töötab?

sobes.tech AI

Vastus AI-lt

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

Основные концепции:

  • Коррутины — функции, объявленные с async def, которые можно приостанавливать с помощью await и возобновлять позже.
  • Цикл событий (event loop) — управляет выполнением коррутин, планирует их запуск и переключение.

Пример:

import asyncio

async def say_hello():
    print('Привет')
    await asyncio.sleep(1)  # имитация асинхронной операции
    print('Мир')

async def main():
    await asyncio.gather(say_hello(), say_hello())

asyncio.run(main())

В этом примере две коррутины say_hello запускаются параллельно, и во время ожидания asyncio.sleep цикл событий переключается между ними, не блокируя выполнение программы.