Рубрики
Без рубрики

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

Жизненный цикл потока в Java. Состояния потоков в java. Жизненный цикл потока в java. Новое, Выполняемое, Запущенное, Заблокированное, Ожидающее, Мертвое состояние потока Java.

Автор оригинала: Pankaj Kumar.

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

Из нашего последнего урока мы можем создать класс потока java, реализовав выполняемый интерфейс или расширив класс потока, но для запуска потока java нам сначала нужно создать объект потока и вызвать его метод start (), чтобы выполнить метод run() как поток.

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

На приведенной ниже диаграмме показаны различные состояния жизненного цикла потоков в java. Мы можем создать поток на java и запустить его, но то, как состояния потока изменяются с выполняемого на запущенный или заблокированный, зависит от реализации планировщика потоков в ОС, и java не имеет полного контроля над этим.

Новый

Когда мы создаем новый объект потока с помощью оператора new , состояние потока-это Новый поток. На данный момент поток не является живым, и это состояние является внутренним для программирования на Java.

Управляемый

Когда мы вызываем функцию start() для объекта потока, его состояние изменяется на работоспособное. Управление передается планировщику потоков для завершения его выполнения. Следует ли запускать этот поток мгновенно или сохранить его в пуле выполняемых потоков перед запуском, зависит от реализации планировщика потоков в операционной системе.

Бегущий

Когда поток выполняется, его состояние изменяется на запущенное. Планировщик потоков выбирает один из потоков из выполняемого пула потоков и изменяет его состояние на запущенное. Затем процессор начинает выполнять этот поток. Поток может изменить состояние на работоспособное, Мертвое или Заблокированное состояние в зависимости от среза времени, завершения потока методом run() или ожидания некоторых ресурсов.

Заблокирован/Ждет

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

Мертвый

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

Выше приведены различные состояния потока . Хорошо знать их и то, как поток изменяет свое состояние. Это все для жизненного цикла потока в java.