Многопоточность в Java

Добавлено пользователем 21.01.2016

многопоточность java

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

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

Когда процессу не хватает памяти, система выделяет для него дополнительные страницы из физической памяти. Страницы виртуальной памяти проецируются на физическую память в любом порядке. Во время запуска программы, операционной системой создается процесс, загружая в его адресное пространство код и информацию программы, далее запуская основной поток созданного процесса.

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

Эту схему называют псевдо-параллелизмом. Система запоминает состояние всех потоков, прежде чем переключиться на иной поток, и, возвращаясь к выполнению потока, восстанавливает его.

Похожие посты:

Особенности наследования java
Система ввода вывода Java
Основные особенности Java