Может кто-нибудь объяснить мне разницу между состояниями Sleeping
, Wait
, Park
и Monitor
в VisualVM.
Вот что я нашел:
Running
: поток все еще запущен. Sleeping
: thread is sleep (метод yield() вызывается в объекте потока) Wait
: поток заблокирован мьютексом или барьером и ждет, пока другой поток выйдет из замка Park
: припаркованные потоки приостанавливаются до тех пор, пока они не получат разрешение. Отключение потока обычно выполняется путем вызова метода unpark() для объекта потока Monitor
: потоки ждут, когда условие вернется к возобновлению выполнения
То, что я не могу понять, это государственный парк, что на самом деле приостанавливает поток? Как определить в коде то, что заставило поток приостановить его выполнение?
Может ли кто-нибудь помочь мне в этом отношении.
Спасибо.