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

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

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

Новый поток

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

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

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

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

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

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

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

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

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

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

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

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

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

§ Ожидание

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

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

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

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

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

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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

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