На курсе "Python: многопоточность, мультипроцессинг, асинхронное программирование" слушатели разберут понятия процессов и многозадачности. Рассмотрят возможности и особенности мультипроцессинга, многопоточности и асинхронного программирования.
Многозадачность (multitasking) — свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких задач. Существует несколько вариантов выполнения параллельной обработки задач, к ним относятся:
Многопоточность (multithreading) — свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени.
Мультипроцессинг (multiprocessing) — это подкласс многопроцессорных компьютерных систем, где есть несколько процессоров, на каждом процессоре запускается поток исполнения и одно адресное пространство, видимое для всех процессоров.
Асинхронное программирование (asynchronous programming) — концепция программирования, которая заключается в том, что результат выполнения функции доступен не сразу же, а через некоторое время в виде некоторого асинхронного (нарушающего обычный порядок выполнения) вызова.
Прослушав данный курс, Вы узнаете:
- Что такое многозадачность
- Что такое мультипроцессинг
- Что такое многопоточность
- Какие есть особенности потоков
- Как использовать модули для распараллеливания задач
- Что такое асинхронное программирование и его особенности
- Как использовать цикл событий
- Какие есть библиотеки и ресурсы асинхронного программирования
Научитесь:
- Основам многозадачности
- Использовать модуль subprocess
- Использовать screen для управления процессами
- Использовать модуль multiprocessing
- Основам многопоточности
- Осуществлять связь между потоками
- Работать с модулем Asyncio
- Использовать ключевые слова async def и await
Аудитория: Разработчики, кто уже осваивает Python и web-разработку. При выполнении некоторых задач подошли к желанию достичь более эффективного использования ресурсов вычислительной машины.
Предварительная подготовка: Уверенное знание основ языка Python.
Курсы, рекомендуемые для предварительного прохождения:
- Программирование на Python, часть 1
- Программирование на Python, часть 2
- Основы web API
- Основы SQL, PostgreSQL, взаимодействие с базой данных в Python
- Разработка web-приложений на Flask
- Разработка web-приложений на Django
Курсы, рекомендуемые для последующего прохождения:
- Разработка web-приложений на Pyramid
Программа курса
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
В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.
Свободно распространяемое программное обеспечение популярно как среди частных лиц, так и среди организаций. Действительно, СПО позволяет серьезно экономить на приобретении лицензий для компаний, которые многократно тиражируют программное решение. Также благодаря тому, что СПО можно квалифицированно дорабатывать собственными силами под конкретные нужды организации, оно приобретает еще и дополнительную гибкость и удобство в использовании.
Открытое программное обеспечение — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.
В конце обучения на курсах проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненные в процессе обучения.
Учебный центр "Интерфейс" оказывает консалтинговые услуги по построению моделей бизнес-процессов, проектированию информационных систем, разработке структуры баз данных и т.д.
- Нужна помощь в поиске курса?
Наша цель заключается в обеспечении подготовки специалистов, когда и где им это необходимо. Возможна корректировка программ курсов по желанию заказчиков! Мы расскажем Вам о том, что интересует именно Вас, а не только о том, что жестко зафиксировано в программе курса. Если вам нужен курс, который вы не видите на графике или у нас на сайте, или если Вы хотите пройти курс в другое время и в другом месте, пожалуйста, сообщите нам, по адресу mail@interface.ru или shopadmin@itshop.ru
- Поговорите со своим личным тренинг-менеджером!
Мы предоставляет Вам индивидуальное обслуживание. Если у вас есть потребность обсудить, все вопросы касательно обучения, свяжитесь, пожалуйста c нами по телефонам: +7 (495) 925-0049, + 7 (495) 229-0436. Или любым другим удобным для Вас средствами связи, которые Вы можете найти на сайтах www.interface.ru или www.itshop.ru
|