Назад к вопросам
Junior
67
questionbank

В каких состояниях может находиться поток?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Поток в Java может находиться в следующих основных состояниях, определяемых перечислением Thread.State:

  • NEW: Поток создан, но еще не запущен.
  • RUNNABLE: Поток выполняется в JVM, но может ожидать выделения процессорного времени операционной системой. Включает состояния Running и Ready.
  • BLOCKED: Поток блокирован и ожидает мониторного лока, чтобы войти в синхронизированный блок или метод, или reentry в него.
  • WAITING: Поток ожидает другого потока выполнить определенное действие без ограничения по времени. Например, вызвав Object.wait(), Thread.join() без таймаута, или LockSupport.park().
  • TIMED_WAITING: Поток ожидает другого потока выполнить определенное действие в течение заданного промежутка времени. Например, вызвав Thread.sleep(), Object.wait() с таймаутом, Thread.join() с таймаутом, LockSupport.parkNanos() или LockSupport.parkUntil().
  • TERMINATED: Поток завершил выполнение.

Состояния потока можно получить с помощью метода thread.getState().