Блог
FAQ

Python: многопоточность, мультипроцессинг, асинхронное программирование

4 дня (32 академических часа).
Длительность:
г. Москва, Ленинградский просп., 68/24;
Место проведения:
21 ноября 2022
Дата проведения:
60 000 руб.
Стоимость:
Необходимые для зачисления в группу документы: паспорт, СНИЛС, диплом о высшем или среднем специальном образовании, заключенный договор об образовании.
На курсе слушатели разберут понятия процессов и многозадачности. Рассмотрят возможности и особенности мультипроцессинга, многопоточности и асинхронного программирования.

Многозадачность (multitasking) — свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких задач. Существует несколько вариантов выполнения параллельной обработки задач, к ним относятся:

Многопоточность (multithreading) — свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени.

Мультипроцессинг (multiprocessing) — это подкласс многопроцессорных компьютерных систем, где есть несколько процессоров, на каждом процессоре запускается поток исполнения и одно адресное пространство, видимое для всех процессоров.

Асинхронное программирование (asynchronous programming) — концепция программирования, которая заключается в том, что результат выполнения функции доступен не сразу же, а через некоторое время в виде некоторого асинхронного (нарушающего обычный порядок выполнения) вызова.
Описание курса
Целевая аудитория
Разработчики, кто уже осваивает Python и web-разработку. При выполнении некоторых задач подошли к желанию достичь более эффективного использования ресурсов вычислительной машины.
Расписание открытых форматов курса
Стоимость обучения одного слушателя
21.11.2022
Очный формат — 60 000 ₽.
Дистанционный формат — 60 000 ₽.
В результате освоения курса вы:
основам многозадачности;
использовать модуль subprocess;
использовать screen для управления процессами;
использовать модуль multiprocessing;
основам многопоточности;
осуществлять связь между потоками;
работать с модулем Asyncio;
использовать ключевые слова async def и await
что такое многозадачность;
что такое мультипроцессинг;
что такое многопоточность;
какие есть особенности потоков;
как использовать модули для распараллеливания задач;
что такое асинхронное программирование и его особенности;
как использовать цикл событий;
какие есть библиотеки и ресурсы асинхронного программирования
Научитесь
Узнаете
Основная информация
21 ноября 2022
пн–чт 10:00–17:00
60 000руб.
м. Аэропорт,
Ленинградский проспект 68/24
Верхотуров Марк Валерьевич
Беляев Александр Владимирович
Порядок записи на курс
Консультация
Выбор курса
Заключение договора
Оплата обучения.
Подробная программа курса
1 Процессы и многозадачность

1.1. Основы многозадачности
1.2. Модуль subprocess
1.3. Использование программы Supervisor и для управления процессами
1.4. Использование программы screen для управления процессами
1.5. Потоки выполнения в Python
1.6. Процессы
1.7. Планирование запуска процессов Python

2 Мультипроцессинг

2.1. Модуль multiprocessing
2.2. Запуск двух простых процессов
2.3. Использование Pool и Map

3 Многопоточность

3.1. Основы многопоточности
3.2. Связь между потоками
3.3. Создание пула worker-ов
3.4. Расширенное использование многопоточности
3.5. Остановка потока в цикле событий
3.6. Глобальная блокировка интерпретатора
3.7. Исполнение в нескольких потоках и нескольких процессах
3.8. Совместное использование состояния в нескольких потоках и нескольких процессах
3.9. Преимущество и недостатки потоков

4 Параллельные вычисления

4.1. Использование многопроцессорного модуля для распараллеливания задач
4.2. Использование C-расширения для распараллеливания задач
4.3. Использование родительских и дочерних скриптов для параллельного выполнения кода
4.4. Использование модуля PyPar для распараллеливания

5 Асинхронное программирование

5.1. Основы Asyncio
5.2. Корутины
5.3. Ключевые слова async def
5.4. Ключевое слово await
5.5. Цикл событий. Event loop
5.6. Задачи и функции
5.7. Асинхронные контекстные менеджеры
5.8. Асинхронные итераторы
5.9. Асинхронные генераторы
5.10. Async Comprehensions
5.11. Запуск и выключение
5.12. Использование return_exceptions=True в gather()
5.13. Другие библиотеки и ресурсы

● Streams
● Twisted
● The Janus Queue
● aiohttp
● ZeroMQ
Возможные форматы обучения и размеры групп
очно (до 15 слушателей);
дистанционно в составе очной группы (без ограничения числа подключений);
корпоративный формат (для групп от 10 до 15 слушателей).
Документы об окончании
Удостоверение о повышении квалификации
Ответы на часто задаваемые вопросы
Какие форматы обучения?
Наши тренинги бывают «открытыми» и «корпоративными». В первом случае курсы предназначаются для всех желающих. Слушатели не выбирают программу и приходят в наш офис в заранее определенные даты.
«Корпоративные» курсы отличаются тем, что проводятся только для определенной группы от Заказчика. Он выбирает и время проведения занятий, и программу, которая может быть адаптирована для максимального соответствия потребностям.

Кто проводит обучение?
Авторы и ведущие наших курсов — признанные эксперты в своих областях. Это преподаватели, готовые передать свои знания и опыт широкому кругу слушателей. В свои программы они включают реальные примеры, поэтому каждый курс актуален в современных условиях.
Какой документ выдается после прохождения обучения?
Если были успешно пройдены кусы по повышению квалификации, выдается соответствующее Удостоверение. Это документ государственного образца, выпущенный на русском языке. Сведения о нем включаются в Федеральный реестр.
Можно ли перед заказом корпоративного обучения познакомиться с тренером или увидеть, как он проводит обучение?

Более подробно о программе и самом обучении можно узнать, задав вопросы тренеру онлайн или по телефону. Еще одна возможность получить представление о занятиях — посетить одно из них, проводимое в открытом формате.
Требуемый уровень предварительной подготовки
Уверенное знание основ языка Python.

Верхотуров Марк Валерьевич

Руководитель IT проектов, Разработчик Python, Data Scientist, ML-engineer
Разработка на Python
Сбор и анализ данных Преобразование "сырых" данных в полезную информацию для бизнеса
Создание и обучение предиктивных моделей с помощью алгоритмов машинного обучения и нейросетей
Помощь бизнесу в нахождении скрытых закономерностей, прогнозировании развития событий и оптимизации ключевых бизнес-процессов
Консалтинг
Коучинг

Специализация
Должность
Дополнительные услуги

Тренер курса

Ведёт 13 курсов в ЦЕСИНКОМ

Беляев Александр Владимирович

Разработчик информационных систем, системный аналитик, аналитик данных
Разработка на Python
Машинное обучение
Математическая оптимизация
Консалтинг

Специализация
Должность
Дополнительные услуги

Тренер курса

Ведёт 19 курсов в ЦЕСИНКОМ
Разработка курса или траектории обучения под вашу задачу
Центр готов взять на себя разработку курсов и траекторий обучения под уже сформированную модель компетенций или просто под список знаний и навыков, которые нужно освоить специалистам организации.