Курс проведёт вас от основ до эксперта в многопроцессорном программировании. Курс от двукратного лауреата премииStepik Awards в престижных номинациях: "Прорыв Года" и "Лучший платный курс". Курс содержит все что вам нужно знать о multiprocessing в python.
Цель курса
Мы научим вас, как использовать все ядра вашего процессора по максимуму, чтобы ускорять сложные вычисления и прокачивать производительность программ. А ещё вы сможете создавать мощные и масштабируемые приложения, которые легко справляются с большими объёмами данных и реальными нагрузками.
Почему стоит выбрать именно этот курс?
Если вы уже знакомы с основами Python и хотите научиться использовать потенциал современных процессоров, то этот курс именно для вас. Мы предоставляем четкую структуру, реальные примеры, и пошаговые задания, которые помогут вам освоить многопроцессное и многопроцессорное программирование на практике. Все темы объясняются доступно, с упором на прикладное использование. В дополнение к теоретическим знаниям, вы получите обширный практический опыт, который поможет вам сразу применять полученные навыки в своих проектах.
Программа курса
Введение
Содержание курса
Введение
Процессы и потоки
Глобальная блокировка интерпретатора 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