Программирование [Stepik, Павел Хошев] Многопроцессорный Python (2025)

75UlENS.png

ОПИСАНИЕ:

Курс проведёт вас от основ до эксперта в многопроцессорном программировании.

Курс от двукратного лауреата премии Stepik Awards в престижных номинациях: "Прорыв Года" и "Лучший платный курс". Курс содержит все что вам нужно знать о multiprocessing в python.

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

Разбираться в основах многопроцессного и многопроцессорного программирования.

Создавать и управлять процессами с помощью Process, Pool, ProcessPoolExecutor и Manager.

Организовывать обмен данными между процессами с использованием Queue, Pipe, Value, Array и Manager.

Использовать примитивы синхронизации, такие как Lock, Semaphore, Event и Barrier.

Обрабатывать исключения в многопроцессных программах для повышения надёжности.

Применять знания на практике, оптимизируя задачи и ускоряя вычисления.

Находить и устранять ошибки в многопроцессном и многопроцессорном коде.

Экономить ресурсы системы, грамотно распределяя задачи между процессами.

Понимать многозадачность на практике и управлять одновременным выполнением задач.

Работать с большими проектами, применяя многопроцессорный и многопроцессный подходы.

Всё о навыках, которые вы получите, можно узнать в описании содержания курса.

Цель курса

Мы научим вас, как использовать все ядра вашего процессора по максимуму, чтобы ускорять сложные вычисления и прокачивать производительность программ. А ещё вы сможете создавать мощные и масштабируемые приложения, которые легко справляются с большими объёмами данных и реальными нагрузками.

Почему стоит выбрать именно этот курс?

Если вы уже знакомы с основами Python и хотите научиться использовать потенциал современных процессоров, то этот курс именно для вас. Мы предоставляем четкую структуру, реальные примеры, и пошаговые задания, которые помогут вам освоить многопроцессное и многопроцессорное программирование на практике. Все темы объясняются доступно, с упором на прикладное использование. В дополнение к теоретическим знаниям, вы получите обширный практический опыт, который поможет вам сразу применять полученные навыки в своих проектах.

Особенности курса

Практическая ориентация. Вы будете не только изучать теорию, но и выполнять реальные задачи, что поможет закрепить все изученные концепции.

Подробные примеры кода. Каждая тема сопровождается примерами, которые можно повторить, а затем применять в собственных проектах.

Гибкий подход. Учебный материал позволяет вам учиться в своем темпе, возвращаясь к сложным темам, если это необходимо.

Оперативные ответы на вопросы и комментарии. В процессе обучения вы не останетесь без поддержки: преподаватели курса всегда готовы ответить на ваши вопросы и прокомментировать сложные моменты.

Что нужно будет делать?

На протяжении курса вы будете выполнять задания, в которых создадите многопроцессорные приложения, используя:

Примитивы синхронизации, такие как Lock, Semaphore, Event, Barrier и др, для управления процессами и обмена данными между ними.

Очереди и каналы для передачи данных между процессами.

Пул процессов для распределения задач между ядрами процессора.

Менеджеры для организации общего пространства имен и управления ресурсами.

Готовы научиться использовать все ресурсы процессора?

Записывайтесь на курс и начните улучшать производительность своих программ уже сегодня!

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

Введение

Основы модуля multiprocessing

Возврат данных из процесса

Примитивы синхронизации

Убийство процессов

Менеджеры

Пул процессов ProcessPoolExecutor

Пул процессов multiprocessing.Pool

Продвинутый уровень

Практика

Спойлер:
Подробно:

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

Введение

Содержание курса

Введение

Процессы и потоки

Глобальная блокировка интерпретатора GIL

Многозадачность в Python

Мультипроцессинг против многопоточности

Мультипроцессорное программирование в Python

Основы модуля multiprocessing

Главный процесс

Дочерние процессы

Взаимодействие главного и дочерних процессов.

Главный поток процесса

Получение процесса по имени

Как получить PID процесса

Получение количества ядер процессора

Статус и характеристики процесса

Как перезапустить процесс

Метод join()

Идиома if __name__ == ‘__main__’

Возврат данных из процесса

Возвращаем значение из процесса

multiprocessing.Value

multiprocessing.Array

multiprocessing.Pipe

multiprocessing.Pipe. Практика

multiprocessing.Queue

multiprocessing.SimpleQueue

multiprocessing.JoinableQueue

Примитивы синхронизации

Примитивы синхронизации

Многопроцессорный Lock

Многопроцессорный RLock

Многопроцессорный Event

Многопроцессорный Semaphore

Многопроцессорная переменная Condition

Многопроцессорный Barrier

Убийство процессов

Остановка главного процесса дочерним

Убийство или завершение процесса

Убить процесс по PID

Как безопасно убить или завершить процесс

Завершение текущего процесса

Менеджеры

Что такое Manager

Менеджер с примитивами синхронизации и очередями

Общее пространство имен с помощью менеджера

Пользовательские менеджеры

Серверный процесс менеджера

Вложенные прокси-объекты у менеджера

Пул процессов ProcessPoolExecutor

Знакомство с пулом процессов

Отправка задач в пул процессов

Возможности объекта Future

Ожидание завершения задач, ч1

Ожидание завершения задач, ч2

Как добавить callback к задаче в ProcessPoolExecutor

map() против submit()

Настройка пула процессов

Обработка исключений при работе с пулом процессов

Примитивы синхронизации с пулом процессов

Как повторно выполнить неудачные задачи в ProcessPoolExecutor

Как работает ProcessPoolExecutor

Пул процессов multiprocessing.Pool

Пул процессов multiprocessing.Pool

Блокирующее выполнение одиночной задачи

Неблокирующее выполнение одиночной задачи

Блокирующая отправка группы задач в пул

Неблокирующая отправка группы задач в пул

Итеративная обработка задач

Какой метод выбрать?

Продвинутый уровень

Пользовательские процессы

Иерархия процессов и задач

Почему не стоит использовать только процессы?

Потоки в процессах

Рекомендации и предостережения

Практика

Решаем задачи

В курс входят

69 уроков / 397 тестов / 116 интерактивных задач

ПРОДАЖНИК:

СКАЧАТЬ:
 

Назад
Сверху