Найти в Дзене
DEBAGanov

Java 1006. В каких состояниях может пребывать поток?

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

Рассмотрим основные состояния потоков в Java:

  • NEW: поток был создан, но еще не запущен.
  • RUNNABLE: поток запущен и готов к выполнению, но еще не получил процессорное время.
  • BLOCKED: поток остановлен, поскольку ожидает освобождения локированного монитора.
  • WAITING: поток остановлен и ожидает события, которое может быть вызвано другим потоком.
  • TIMED_WAITING: поток остановлен и ожидает события, которое может быть вызвано только после таймаута.
  • TERMINATED: поток завершен и больше не выполняется.

Примеры перевода потока из одного состояния в другое:

  • NEW -> RUNNABLE: поток становится готовым к выполнению при запуске с помощью метода start().
  • RUNNABLE -> WAITING: поток вызывает метод wait(), чтобы ожидать события.
  • RUNNABLE -> TIMED_WAITING: поток вызывает метод sleep() или wait(timeout) и ожидает события с таймаутом.
  • RUNNABLE -> BLOCKED: поток пытается войти в секцию кода, защищенную заблокированным монитором.
  • RUNNABLE -> TERMINATED: поток завершает свое выполнение, когда выполняется последний оператор в методе run().

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov