Мы используем cookie для стабильной работы сервиса. Подробнее

Многопоточный Python

ФорматОнлайн
Длительность15 минут в день
Объём9 занятий
О курсе

Подробнее

Цели курса Курс направлен на изучение и глубокое понимание многопоточности. Целью является обучение разработчиков созданию высокопроизводительных и эффективных многопоточных приложений, позволяющих максимально использовать ресурсы современных систем.  Почему стоит выбрать именно этот курс Этот курс выделяется на фоне других благодаря своей акцентированности на практическом применении знаний, предоставлению реальных кейсов и задач, которые разработчики могут столкнуться в своей профессиональной деятельности. Он предлагает глубокое погружение в тему с пошаговыми инструкциями и лучшими практиками, подкрепленными примерами кода и практическими задачами. Что приобретут учащиеся после его успешного освоения После успешного завершения курса учащиеся приобретут навыки: Разработки многопоточных приложений на Python; Эффективного использования потоков и пулов потоков; Оптимизации производительности программ; Понимания и устранения проблем, связанных с многопоточностью. И многое другое... Особенности курса Практическая ориентированность: Курс сфокусирован на практических задачах, что помогает лучше усвоить материал. Гибкость и доступность: Предлагается удобный формат обучения, подходящий как для новичков, так и для опытных разработчиков. Поддержка сообщества и наставников: Учащиеся имеют доступ к помощи и поддержке со стороны преподавателей и сообщества. Сертификация: Выдача сертификата по окончании курса, подтверждающего приобретенные навыки. Что нужно будет делать Учащимся предстоит изучать теоретические материалы, выполнять практические задания, тестировать и оптимизировать многопоточные приложения и радоваться полученным навыкам.
Требования

Что нужно для старта

  • Знание языка Python: Уверенное владение синтаксисом Python, включая переменные, управляющие конструкции (циклы и условные операторы), функции, классы и исключения.
  • Понимание структур данных: Основы структур данных, таких как списки, словари, кортежи, их применение и реализация.
  • Базовое понимание многопоточности и асинхронности: Хотя курс и нацелен на изучение многопоточности, начальное понимание этих концепций поможет быстрее вникнуть в материал.
  • Для кого курс окажется слишком сложным
  • Новичкам без предварительного опыта программирования: Если вы еще не знакомы с базовыми концепциями программирования или синтаксисом Python, начинать с многопоточного программирования может быть преждевременно.
  • Тем, кто не владеет основами Python: Необходимо хорошо разбираться в основах языка, прежде чем переходить к более сложным темам.
  • Для кого курс может показаться слишком простым
  • Опытным разработчикам, специализирующимся на многопоточности: Если вы уже имеете глубокие знания и практический опыт работы с многопоточными приложениями на Python, этот курс может показаться вам повторением уже известной информации.
  • Специалистам, ищущим узкоспециализированные темы в многопоточности: Курс охватывает широкий спектр тем, и если ваш интерес крайне специфичен, может потребоваться более фокусированный материал.
Результат

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

  • Определять и объяснять ключевые концепции многопоточности, включая потоки, пулы потоков, и как они используются для конкурентного программирования.
  • Применять паттерны и стратегии для эффективного использования многопоточности, включая создание пулов, отправку задач и ожидание их завершения.
  • Разрабатывать многопоточные приложения, которые могут эффективно выполнять задачи конкурентно для распределения работы.
  • Управлять жизненным циклом пула, включая инициализацию рабочих потоков, оптимизацию количества потоков для достижения наилучшей производительности.
  • Использовать имена потоков, локальные данные потока и атрибуты потока для организации и управления многопоточным кодом.
  • Применять синхронизацию потоков для обеспечения потокобезопасности при доступе к разделяемым ресурсам с помощью механизмов блокировки, семафоров, условий и других примитивов синхронизации.
  • Обрабатывать исключения и ожидать результаты от потоков для надежного выполнения асинхронных задач.
  • Определять и применять лучшие практики и распространенные методы для избегания ошибок в многопоточном программировании.
Аудитория

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

  • — Начинающие программисты, которые хотят углубить свои знания в Python и изучить многопоточное программирование для повышения своей квалификации и рыночной ценности.
  • — Опытные разработчики, стремящиеся расширить свои компетенции и улучшить производительность существующих приложений через эффективное использование многопоточности.
  • — Специалисты по анализу данных и искусственного интеллекта, для которых конкурентная обработка данных является ключом к ускорению вычислений и повышению эффективности алгоритмов.
  • — Студенты технических специальностей, желающие углубить свои знания в современных методах программирования и подготовиться к будущей карьере в IT.
  • — Веб-разработчики, ищущие способы улучшить отзывчивость и производительность своих приложений на стороне сервера.
  • — Профессионалы в области IT, нуждающиеся в улучшении навыков работы с многопоточностью для решения специфических задач, например, в разработке игр или комплексных систем реального времени.
Содержание

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

9 занятий
ТемаЧто внутри
01Введение в многопоточность

- Введение
- Общие понятия
- Что такое потоки
- Что такое главный поток
- Ожидание результата от потока
- Ожидание выполнения потока
- Имена потоков
- Атрибуты потока
- Хранение локальных данных потока
- Атомарные операции
- Поток-таймер
- Вспомогательные функции для работы с потоками

02Работа с пулами потоков

- Что такое пулы потоков
- Создание пула потоков
- Отправка задач в пул потоков с помощью submit() и map()
- Получаем результаты из пула потоков
- Что такое Executors
- Ожидание завершения задач
- Инициализация рабочих потоков
- Завершение работы пула потоков
- Количество потоков
- Жизненный цикл пула потоков
- Тестирование и оптимальное количество потоков
- ThreadPool vs AsyncIO

03Подробнее о Futures

- Что такое Futures
- Объект Future
- Методы Future
- Жизненный цикл Future
- Проверяем статус Future
- Добавляем обратный вызов к Future
- Получение исключений из Future
- Всё об отмене Future

04Потокобезопасные очереди

- Введение в очереди
- Queue
- LifoQueue
- PriorityQueue
- SimpleQueue и исключения

05Управление потоками и синхронизация

- Блокировка взаимного исключения (Lock)
- Реентерабельная блокировка (RLock)
- Синхронизация по событиям (Event)
- Синхронизация с условием (Condition)
- Семафор в потоках (Semaphore)
- Как остановить все задачи
- Остановить все задачи, если одна завершилась неудачей
- Барьер в потоках (Barrier)

06Advanced Locking - Продвинутое блокирование

- Конкуренция за блокировку
- Чередование блокировок
- Разделение блокировок
- Повторная попытка блокировки с откатом
- Накладные расходы поточной блокировки

07Практическое применение и продвинутые техники

- Последовательная и параллельная загрузка
- Одновременная загрузка файлов
- Обработка исключений во время выполнения задачи

08Безопасность потоков

- Потокобезопасный счетчик
- Потокобезопасная печать
- Потокобезопасное логирование
- Потокобезопасный словарь
- Потокобезопасный список
- Потокобезопасная запись в файл
- Непостоянные переменные

09Создание и работа с пулом в модуле multiprocessing

- Введение
- ThreadPoolExecutor vs ProcessPoolExecutor
- Синхронное выполнение одиночной задачи
- Асинхронное выполнение одиночной задачи
- Синхронная обработка коллекций
- Асинхронная обработка коллекций
- Итеративная синхронная обработка задач
- Итеративная синхронная обработка задач без сохранения порядка
- Синхронная обработка задач с множеством аргументов
- Асинхронная обработка задач с множеством аргументов
- Какой метод выбрать?
- Сравнение методов
- Лучшие практики использования пула процессов
- Распространенные ошибки

01Введение в многопоточность

- Введение
- Общие понятия
- Что такое потоки
- Что такое главный поток
- Ожидание результата от потока
- Ожидание выполнения потока
- Имена потоков
- Атрибуты потока
- Хранение локальных данных потока
- Атомарные операции
- Поток-таймер
- Вспомогательные функции для работы с потоками

02Работа с пулами потоков

- Что такое пулы потоков
- Создание пула потоков
- Отправка задач в пул потоков с помощью submit() и map()
- Получаем результаты из пула потоков
- Что такое Executors
- Ожидание завершения задач
- Инициализация рабочих потоков
- Завершение работы пула потоков
- Количество потоков
- Жизненный цикл пула потоков
- Тестирование и оптимальное количество потоков
- ThreadPool vs AsyncIO

03Подробнее о Futures

- Что такое Futures
- Объект Future
- Методы Future
- Жизненный цикл Future
- Проверяем статус Future
- Добавляем обратный вызов к Future
- Получение исключений из Future
- Всё об отмене Future

04Потокобезопасные очереди

- Введение в очереди
- Queue
- LifoQueue
- PriorityQueue
- SimpleQueue и исключения

05Управление потоками и синхронизация

- Блокировка взаимного исключения (Lock)
- Реентерабельная блокировка (RLock)
- Синхронизация по событиям (Event)
- Синхронизация с условием (Condition)
- Семафор в потоках (Semaphore)
- Как остановить все задачи
- Остановить все задачи, если одна завершилась неудачей
- Барьер в потоках (Barrier)

06Advanced Locking - Продвинутое блокирование

- Конкуренция за блокировку
- Чередование блокировок
- Разделение блокировок
- Повторная попытка блокировки с откатом
- Накладные расходы поточной блокировки

07Практическое применение и продвинутые техники

- Последовательная и параллельная загрузка
- Одновременная загрузка файлов
- Обработка исключений во время выполнения задачи

08Безопасность потоков

- Потокобезопасный счетчик
- Потокобезопасная печать
- Потокобезопасное логирование
- Потокобезопасный словарь
- Потокобезопасный список
- Потокобезопасная запись в файл
- Непостоянные переменные

09Создание и работа с пулом в модуле multiprocessing

- Введение
- ThreadPoolExecutor vs ProcessPoolExecutor
- Синхронное выполнение одиночной задачи
- Асинхронное выполнение одиночной задачи
- Синхронная обработка коллекций
- Асинхронная обработка коллекций
- Итеративная синхронная обработка задач
- Итеративная синхронная обработка задач без сохранения порядка
- Синхронная обработка задач с множеством аргументов
- Асинхронная обработка задач с множеством аргументов
- Какой метод выбрать?
- Сравнение методов
- Лучшие практики использования пула процессов
- Распространенные ошибки

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

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

Напишите ваш коментарий, не менее 30 символов

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

Оставьте заявку

Консультант ответит на вопросы о курсе «Многопоточный Python» и поможет разобраться в деталях обучения.

Комментарий ...

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

Направления:Python-разработка

Информация обновлена 12 августа 2026 г.

Продолжить выбор

Похожие курсы

Начать без затрат

Бесплатные курсы