Жизненный цикл потока в Java

RedDeveloper
15.02.2023 11:17
Жизненный цикл потока в Java

Поток в Java в любой момент времени находится в любом из следующих состояний. В любой момент времени поток находится только в одном из показанных состояний.

Новый поток

Когда создается новый поток, он находится в состоянии new.

Когда поток находится в этом состоянии, он еще не начал выполняться.

Когда поток находится в новом состоянии, его код еще не запущен и не начал выполняться.

Выполнимое состояние

Поток, готовый к выполнению, переходит в состояние runnable.

В этом состоянии поток может быть запущен или готов к запуску в любой момент времени.

Планировщик потоков несет ответственность за предоставление потоку времени для выполнения.

Многопоточная программа выделяет фиксированное количество времени для каждого отдельного потока.

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

Когда это происходит, все потоки, готовые к выполнению, ожидают CPU, а текущий поток находится в состоянии готовности к выполнению.

Заблокированное/ожидающее состояние

Когда поток временно неактивен, он находится в одном из следующих состояний:

§ Заблокирован

§ Ожидание

Ожидание с выдержкой времени

Поток находится в состоянии ожидания с выдержкой времени, когда он вызывает метод с параметром тайм-аута.

Поток находится в этом состоянии до завершения тайм-аута или до получения уведомления.

Прерванное состояние

Поток завершается по одной из следующих причин:

§ Потому что он завершается нормально: Это происходит, когда код потока был полностью выполнен программой.

§ Потому что произошло какое-то необычное ошибочное событие: например, ошибка сегментации или необработанное исключение.

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP

23.03.2023 11:48

В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.

От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React

23.03.2023 08:01

Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои навыки работы с React.

БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS

23.03.2023 02:41

Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и чувствовал, что больше не хочу смотреть на длинный код CSS с нарушенной структурой.

Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow

22.03.2023 13:41

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

Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?

22.03.2023 08:55

Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.

Конфигурация Jest в angular
Конфигурация Jest в angular

22.03.2023 08:25

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