Параллельное программирование на Java
Курс 1
- 19 часов
- 4,6 (1205 оценок)
Детали курса
чему ты научишься
Этот курс обучает специалистов отрасли и студентов фундаментальным концепциям параллельного программирования в контексте Java 8. Параллельное программирование позволяет разработчикам использовать преимущества многоядерных компьютеров для повышения производительности приложений за счет одновременного использования нескольких процессоров. К концу курса вы будете знать, как использовать популярные платформы параллельного программирования на Java (такие как ForkJoin, Stream и Phaser) для написания параллельных программ для широкого спектра многоядерных платформ, включая серверы, настольные компьютеры и мобильные устройства. устройства, а также вы узнаете об их теоретических основах, включая вычислительные графы, идеальный параллелизм, параллельное ускорение, закон Амаделя, информационные гонки и детерминизм.
Почему вам стоит пройти этот курс?
- Все компьютеры являются многоядерными, поэтому важно научиться расширять свои знания последовательного программирования на Java.
- Java 7 и Java 8 представили новые платформы для параллельного программирования (ForkJoin, Stream), которые существенно изменили парадигмы параллельного программирования с первых десятилетий существования Java.
- Каждый из четырех модулей курса содержит миниатюрный проект «Назначти», который даст вам полезный практический опыт для применения понятий, изученных после окончания курса.
- Во время курса вам понадобится онлайн-доступ к лектору и наставникам для получения персонализированных ответов на ваши вопросы на форумах.
Желаемые результаты обучения на курсе включают в себя:
- Теория параллелизма: вычислительные графы, работа, диапазон, идеальный параллелизм, параллельное ускорение, закон Амаделя, информационная гонка и детерминизм.
- Параллелизм задач с помощью платформы Java ForkJoin
- Функциональный параллелизм с использованием фреймворков Java Future и Stream.
- Параллелизм на уровне цикла с расширениями для барьеров и группировкой итераций (фрагментированием)
- Параллелизм потоков данных с использованием платформы Phaser и задач, управляемых данными.
Освоение этих концепций позволит вам немедленно применять их в контексте многоядерных программ Java, а также обеспечит основу для освоения других систем параллельного программирования, которые вам пригодятся в будущем (таких как C++11, OpenMP, Библиотека параллельных задач .Net).
навыки, которые вы приобретете
- Категория: поток данных
- Категория: параллельное программирование
- Категория: Java-методология
Синхронизированное программирование на Java
Курс 2
- 18 часов
- 4,5 (655 оценок)
Детали курса
чему ты научишься
Этот курс обучает специалистов отрасли и студентов фундаментальным концепциям синхронного программирования в контексте Java 8. Синхронное программирование позволяет разработчикам эффективно и правильно управлять использованием общих ресурсов в параллельных программах. В конце курса вы узнаете, как использовать базовые структуры синхронизации в Java, такие как процессы (потоки), блокировки, критические части, атомарные переменные, изоляцию, модели актеров, оптимистическую синхронизацию и синхронизированные коллекции, а также их теоретические основы. (например, гарантии прогресса, тупик, активная блокировка, голодание и линеаризуемость).
Почему вам стоит пройти этот курс?
- Важно знать теоретические основы синхронизации, чтобы избежать распространенных, но незаметных ошибок программирования.
- В Java 8 обновлено большинство структур синхронизации с момента появления процессов и блокировок.
- Во время курса вам понадобится онлайн-доступ к лектору и наставникам для получения персонализированных ответов на ваши вопросы на форумах.
- Каждый из четырех модулей курса содержит миниатюрный проект «Назначти», который даст вам полезный практический опыт для применения понятий, изученных после окончания курса.
Желаемые результаты обучения на курсе включают в себя:
- Теория синхронизации: гарантии прогресса, тупик, активная блокировка, голодание, линеаризуемость
- Использование процессов и блокировок в упорядоченной/неупорядоченной конфигурации в Java
- Атомарные переменные и изоляция
- Оптимистическая синхронизация и синхронизированные коллекции в Java (например, синхронизированные очереди, синхронизированные хэш-карты)
- Модель игрока на Java
Освоение этих концепций позволит вам немедленно применять их в контексте синхронизированных программ Java и поможет вам освоить другие системы синхронизированного программирования, которые вам пригодятся в будущем (например, потоки POSIX, потоки .NET).
навыки, которые вы приобретете
- Категория: Синхронизация (Информатика)
- Категория: Модель игрока
- Категория: Оптимистическое управление синхронизацией
- Категория: Синхронное программирование
Распределенное программирование на Java
Курс 3
- 17 часов
- 4,5 (489 оценок)
Детали курса
чему ты научишься
Этот курс обучает специалистов отрасли и студентов фундаментальным концепциям распределенного программирования в контексте Java 8. Распределенное программирование позволяет разработчикам использовать несколько узлов в центре обработки данных для увеличения пропускной способности и уменьшения задержки выбранных приложений. К концу курса вы будете знать, как использовать популярные среды распределенного программирования для программ Java, включая Hadoop, Spark, Sockets, Remote Method Invoke (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), а также различные подходы к объединению процессов распределения работы и мультипрограммирования.
Почему вам стоит пройти этот курс?
- Все серверы в центрах обработки данных организованы как совокупность распределенных серверов, и также важно научиться использовать несколько серверов для увеличения пропускной способности и уменьшения задержек.
- Помимо изучения конкретных фреймворков для распределенного программирования, курс научит вас, как объединить многоядерный параллелизм и распределенное программирование в едином подходе.
- Каждый из четырех модулей курса содержит миниатюрный проект «Назначти», который даст вам полезный практический опыт для применения понятий, изученных после окончания курса.
- Во время курса вам понадобится онлайн-доступ к лектору и наставникам для получения персонализированных ответов на ваши вопросы на форумах.
Желаемые результаты обучения на курсе включают в себя:
- Распределенное программирование Map-Reduce на Java с использованием платформ Hadoop и Spark.
- Клиент-серверное программирование с использованием интерфейсов сокетов Java и удаленного вызова методов (RMI).
- Программирование передачи сообщений с помощью интерфейса передачи сообщений (MPI) на Java.
- Подходы к объединению распределения работы и многопроцессного программирования, включая процессы и процессы, распределенных участников и реактивное программирование.
Освоение этих концепций позволит вам немедленно применять их в контексте распределенных программ Java, а также обеспечит основу для освоения других систем распределенного программирования, с которыми вы столкнетесь в будущем (таких как Scala или C++).
навыки, которые вы приобретете
- Категория: Распределенное программирование
- Категория: Модель игрока
- Категория: параллельное программирование
- Категория: реактивное программирование