Alguém por favor pode me explicar a diferença entre Sleeping
, Wait
, Park
, e Monitor
estados de rosca em VisualVM.
Isto é o que encontrei:
Running
: thread ainda está em execução.
Sleeping
: thread está dormindo (método yield () foi chamado no objeto thread)
Wait
: thread foi bloqueado por um mutex ou uma barreira e está esperando por outro thread para liberar o bloqueio
Park
: threads estacionados são suspensos até que recebam uma permissão. O desbloqueio de um thread geralmente é feito chamando o método unpark () no objeto do thread
Monitor
: os threads estão esperando que uma condição se torne verdadeira para retomar a execução
O que eu não consigo entender é o parque estadual, o que realmente suspende o fio? Como posso detectar no código o que fez o thread suspender sua execução?
Alguém pode me orientar a esse respeito.
Obrigado.