Руководство по параллелизму Java

Проще говоря, параллелизм — это способность запускать несколько программ или несколько частей программы параллельно. Параллелизм позволяет программе достигать высокой производительности и пропускной способности за счет использования неиспользованных возможностей базовой операционной системы и аппаратного обеспечения машины. Например, современные компьютеры имеют несколько ЦП или несколько ядер в одном ЦП, программа может использовать все ядра для некоторой части обработки; таким образом, завершая задачи намного раньше по времени по сравнению с последовательной обработкой.

Основой параллелизма Java является поток. Поток — это облегченный процесс, который имеет свой собственный стек вызовов, но может получать доступ к общим данным других потоков в том же процессе. Приложение Java по умолчанию выполняется в одном процессе. Вы можете работать со многими потоками в приложении Java для достижения параллельной обработки или параллелизма.

1. Что делает приложение Java параллельным?

В самом первом классе вам нужно будет сделать java-класс параллельным, это класс java.lang.Thread. Этот класс является основой всех концепций параллелизма в java. Затем у вас есть интерфейс java.lang.Runnable для абстрагирования поведения потока из класса потока.

Другие классы, которые вам понадобятся для создания расширенных приложений, можно найти в пакете java.util.concurrent, добавленном в Java 1.5.

2. Действительно ли параллелизм в Java настолько прост?

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

Параллельные приложения обычно имеют более сложную конструкцию по сравнению с однопоточными приложениями. Код, выполняемый несколькими потоками, обращающимися к общим данным, требует особого внимания. Ошибки, возникающие из-за неправильной синхронизации потоков, очень трудно обнаружить, воспроизвести и исправить. Обычно они проявляются в более высоких средах, таких как производство, и воспроизведение ошибки иногда невозможно в более низких средах.

Помимо сложных дефектов, параллелизм требует больше ресурсов для запуска приложения. Поэтому убедитесь, что у вас достаточно ресурсов в вашем арсенале.

3. Учебник по параллелизму Java

Охватить весь параллелизм Java в одном посте просто почти невозможно. Поэтому я написал ниже Учебники по параллелизму Java, обсуждая одну отдельную концепцию в одном посте. Пройдите эти руководства и дайте мне знать, если у вас есть какие-либо вопросы или предложения.

3.1 Основы параллелизма в Java

3.2. Разница между

3.3 Структура исполнителя

3.4. Расширенный параллелизм

3.5. Конкурентные коллекции

3.6 Проект Loom

3.7 Разное

Прокрутить вверх