Конкурентность: от нуля до уровня Python-разработчика

Освойте конкурентность в Python: потоки, процессы и асинхронность. В курсе вы разберёте GIL, CPU-bound и I/O-bound задачи, threading, multiprocessing, asyncio, примитивы синхронизации, очереди, пулы процессов, Task и TaskGroup. Практика поможет писать более устойчивый, быстрый и понятный код для backend-разработки,…
Начальный уровень

Чему вы научитесь

  • ✅ Понимать разницу между конкурентностью и параллелизмом
  • ✅ Отличать CPU-bound и I/O-bound задачи и выбирать подходящий подход
  • ✅ Разбираться в модели выполнения Python и роли GIL
  • ✅ Использовать потоки с помощью threading
  • ✅ Безопасно синхронизировать потоки через Lock, Semaphore, Event и Condition
  • ✅ Организовывать обмен данными между потоками через Queue
  • ✅ Работать с процессами через multiprocessing
  • ✅ Использовать Pipe, Manager и shared_memory для обмена данными между процессами
  • ✅ Создавать пулы процессов и управлять задачами через map и apply_async
  • ✅ Писать асинхронный код с asyncio, async, await, Task и TaskGroup
  • ✅ Работать с тайм-аутами, отменой задач и структурированной конкурентностью
  • ✅ Выбирать подходящий механизм конкурентности под задачу и проектировать устойчивые системы

О курсе

Конкурентность — одна из ключевых тем для Python-разработчика, который хочет писать более быстрые, устойчивые и профессиональные приложения. Этот курс поможет разобраться, когда использовать потоки, когда нужны процессы, а когда лучше выбрать асинхронность.

Вы начнёте с базовых понятий: чем конкурентность отличается от параллелизма, почему важно различать CPU-bound и I/O-bound задачи, как Python выполняет код и какую роль играет GIL. Затем перейдёте к практической работе с потоками: threading, синхронизация, очереди, безопасный обмен данными и типичные ошибки многопоточного кода.

После этого вы разберёте multiprocessing: процессы, пулы процессов, обмен данными через Pipe, Manager и shared_memory. Это поможет понять, как работать с вычислительными задачами и использовать возможности нескольких ядер.

Отдельный блок посвящён asyncio: корутинам, async/await, задачам, TaskGroup, тайм-аутам, отмене задач и структурированной конкурентности. Вы научитесь выбирать подходящий инструмент под конкретный сценарий и лучше понимать, как устроены современные backend-приложения, сетевые сервисы и системы обработки данных.

Главная цель курса — не просто познакомить вас с инструментами конкурентности, а научить применять их осознанно: писать безопасный код, избегать гонок данных, понимать ограничения Python и проектировать решения, которые подходят под реальные задачи.

Для кого этот курс

Курс подойдёт Python-разработчикам, которые хотят глубже понять конкурентность, оптимизировать свой код и увереннее работать с потоками, процессами и асинхронностью. Он будет полезен backend-разработчикам, которые строят быстрые и масштабируемые приложения, а также тем, кто работает с сетевыми запросами, вводом-выводом, обработкой данных или вычислительными задачами. Курс также подойдёт QA-инженерам, DevOps-специалистам, студентам и энтузиастам, которым важно понимать многопоточные сценарии, нагрузку, производительность и то, как Python управляет потоками, процессами и задачами.

Начальные требования

Для комфортного прохождения курса желательно уверенно знать основы Python: переменные, функции, классы, исключения, коллекции и базовую работу с модулями.

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

Наши преподаватели

Как проходит обучение

Обучение проходит в удобном формате на Stepik: вы изучаете объяснения, разбираете примеры, выполняете практические задания и постепенно переходите от базовых понятий к реальным сценариям использования threading, multiprocessing и asyncio.

Рекомендуемая нагрузка — 4–5 часов в неделю. Такой темп поможет спокойно освоить сложную тему, регулярно практиковаться и постепенно сформировать уверенность в работе с конкурентным кодом.

Программа курса

загружаем...

Отзывы прошедших курс

3
из 5
из 1 отзыва
1 отзыв
загружаем...

Что вы получаете

  • ✅ понимание ключевых моделей конкурентности: потоки, процессы и асинхронность
  • ✅ навык выбора подходящего инструмента под CPU-bound и I/O-bound задачи
  • ✅ практику работы с threading, multiprocessing и asyncio
  • ✅ понимание GIL и ограничений производительности Python
  • ✅ умение писать более безопасный и устойчивый конкурентный код
  • ✅ опыт работы с синхронизацией, очередями, пулами процессов и задачами asyncio
  • ✅ базу для разработки backend-сервисов, автоматизации и систем обработки данных
  • ✅ практику, близкую к профессиональной разработке
  • ✅ сертификат Stepik после успешного прохождения курса
Price: Бесплатно

Расскажите о курсе друзьям

Price: Бесплатно