Чему вы научитесь
- ✅ Понимать разницу между конкурентностью и параллелизмом
- ✅ Отличать 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: переменные, функции, классы, исключения, коллекции и базовую работу с модулями.
Опыт профессиональной разработки не обязателен, но будет полезно, если вы уже писали небольшие программы на Python и хотите лучше понимать, как ускорять код и работать с несколькими задачами одновременно.
Преподаватели курса
Как проходит обучение
Обучение проходит в удобном формате на Stepik: вы изучаете объяснения, разбираете примеры, выполняете практические задания и постепенно переходите от базовых понятий к реальным сценариям использования threading, multiprocessing и asyncio.
Рекомендуемая нагрузка — 4–5 часов в неделю. Такой темп поможет спокойно освоить сложную тему, регулярно практиковаться и постепенно сформировать уверенность в работе с конкурентным кодом.
Что вы получите
- ✅ понимание ключевых моделей конкурентности: потоки, процессы и асинхронность
- ✅ навык выбора подходящего инструмента под CPU-bound и I/O-bound задачи
- ✅ практику работы с threading, multiprocessing и asyncio
- ✅ понимание GIL и ограничений производительности Python
- ✅ умение писать более безопасный и устойчивый конкурентный код
- ✅ опыт работы с синхронизацией, очередями, пулами процессов и задачами asyncio
- ✅ базу для разработки backend-сервисов, автоматизации и систем обработки данных
- ✅ практику, близкую к профессиональной разработке
- ✅ сертификат Stepik после успешного прохождения курса