Встречается на собеседованиях • сегодня

Какие подходы к асинхронности в Python

В Python есть несколько подходов к асинхронности:

  1. Потоки (threading)
    Подходит для I/O-bound задач. GIL ограничивает параллелизм CPU-bound операций.

    python
    import threading
    def task():
        print("Выполняется в потоке")
    thread = threading.Thread(target=task)
    thread.start()
  2. Процессы (multiprocessing)
    Для CPU-bound задач, обходит GIL, но имеет накладные расходы.

    python
    from multiprocessing import Process
    def task():
        print("Выполняется в процессе")
    p = Process(target=task)
    p.start()
  1. Asyncio
    Современный подход для I/O-bound задач с использованием корутин.

    python
    import asyncio
    async def task():
        print("Асинхронная задача")
    asyncio.run(task())
  2. Генераторы
    Базовый механизм для кооперативной многозадачности.

    python
    def generator():
        yield 1
        yield 2
    gen = generator()
    print(next(gen))
  3. Сторонние библиотеки
    Например, gevent или eventlet для green-потоков.

Выбор зависит от типа задачи: asyncio для современных сетевых приложений, процессы для тяжелых вычислений, потоки для простых I/O операций.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы