Получить доступ

Конкурентность и asyncio

Основа с Junior

GIL, потоки и процессы, asyncio, event loop, отмена и блокирующие вызовы.

Что важно знать

  • GIL: один поток выполняет байткод в момент времени; потоки помогают при ожидании ввода-вывода, процессы — при вычислениях.
  • asyncio: корутины, event loop, TaskGroup, asyncio.timeout.
  • Блокирующий вызов в корутине останавливает всё — to_thread или асинхронные клиенты.
  • Free-threaded сборка Python 3.13+ без GIL — экспериментальная.

Критерии освоения

Junior ≈ 6 ч

  • Объясняет GIL и разницу threading, multiprocessing и asyncio

Практика. Сравнить время загрузки 50 страниц последовательно, в потоках и в asyncio.

Middle ≈ 10 ч

  • Пишет асинхронный код с TaskGroup, таймаутами и отменой
  • Выносит блокирующие вызовы из event loop
  • Защищает общее состояние в потоках, несмотря на GIL

Практика. Сделать асинхронный сборщик данных из нескольких API с ограничением параллельности, таймаутами и отменой.

Senior ≈ 6 ч

  • Выбирает модель конкурентности под нагрузку сервиса и объясняет влияние free-threaded Python

Практика. Найти и устранить блокировку event loop в асинхронном сервисе под нагрузкой по профилю.

Вопросы с собеседований

← Вся карта «Python»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем