Профилирование Java JVM, статус потока - что означает статус «Монитор»? - PullRequest
77 голосов
/ 15 июля 2011

enter image description here

Я использую visualVM для подключения многопоточного Java-приложения, поток имеет 4 состояния, а именно: работает, спит, ждет, монитор.Что означает этот статус мониторинга?В чем разница между ожиданием и монитором?

Ответы [ 3 ]

84 голосов
/ 15 июля 2011

Эти состояния такие же, как указано в перечислении Thread.State. «Ожидание» означает, как сказано в документации:

Поток находится в состоянии ожидания из-за вызова одного из следующих методов:

  • Object.wait без тайм-аута
  • Thread.join без времени ожидания
  • LockSupport.park

«Монитор» - это состояние BLOCKED, в котором поток ожидает получения блокировки на объект (поскольку он пытается ввести блок или метод synchronized, пока другой поток уже удерживается связанный замок).

7 голосов
/ 15 июля 2011

Это не состояние "мониторинга" ... Это означает, что поток находится в состоянии Thread.State.BLOCKED. Я вижу, что есть еще один хороший ответ, я просто укажу вам эту ссылку для более глубокого объяснения

5 голосов
/ 15 июля 2011

Монитор будет означать, что поток ожидает блокировки объекта.Например, когда один поток выполняет синхронизированный метод, а другой пытается вызвать его для того же объекта, он не сможет этого сделать, пока не завершится первый вызов метода.Это связано с тем, что первый поток имеет монитор или блокировку для этого объекта, поэтому второй должен ждать, пока он не будет освобожден.

Из Oracle Threading Tutorials :

"Синхронизация построена вокруг внутренней сущности, известной как внутренняя блокировка или блокировка монитора. (Спецификация API часто относится кэта сущность просто как «монитор». Внутренние блокировки играют роль в обоих аспектах синхронизации: обеспечение исключительного доступа к состоянию объекта и установление отношений «произойдет до», которые важны для видимости ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...