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

Расскажи про эволюцию асинхронности

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

  1. Потоки (Threading)
    Просто, но есть GIL (Global Interpreter Lock), который ограничивает параллельное выполнение.

    python
    import threading
    def task(): print("Hello")
    thread = threading.Thread(target=task)
    thread.start()
  2. Мультипроцессинг (Multiprocessing)
    Обходит GIL, но тяжеловесен из-за разделения памяти.

    python
    from multiprocessing import Process
    p = Process(target=task)
    p.start()
  1. Корутины (asyncio, Python 3.5+)
    Легковесные потоки (корутины) с async/await. Эффективны для I/O-bound задач.

    python
    import asyncio
    async def task(): print("Hello")
    await asyncio.gather(task())
  2. Concurrent.futures
    Унифицированный интерфейс для потоков/процессов.

    python
    from concurrent.futures import ThreadPoolExecutor
    with ThreadPoolExecutor() as executor:
        executor.submit(task)

Современный Python чаще использует asyncio для асинхронного I/O и multiprocessing для CPU-bound задач.

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

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

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

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