Sobes.tech
Back to questions
Senior
6

Зачем нужна асинхронность в Python и как вы с ней работали?

Companies where asked
Топассимтент

Answer from AI

sobes.tech AI

Асинхронность в Python нужна для эффективной работы с операциями ввода-вывода (I/O), которые могут занимать значительное время (например, сетевые запросы, чтение файлов, взаимодействие с базой данных). Вместо блокировки потока исполнения программа может продолжать выполнять другие задачи, повышая производительность и отзывчивость.

В Python асинхронность реализуется с помощью ключевых слов async и await, а также библиотеки asyncio. Например, можно запускать несколько сетевых запросов параллельно без создания множества потоков.

Пример использования asyncio:

import asyncio

async def fetch_data(delay, name):
    await asyncio.sleep(delay)  # имитация задержки
    return f"Data from {name}"

async def main():
    task1 = asyncio.create_task(fetch_data(2, 'source1'))
    task2 = asyncio.create_task(fetch_data(1, 'source2'))

    result1 = await task1
    result2 = await task2

    print(result1)
    print(result2)

asyncio.run(main())

Такой подход позволяет эффективно использовать ресурсы и писать масштабируемые приложения, особенно в сетевых и высоконагруженных системах.