2011-07-15 9 views

Respuesta

78

Estos estados son los mismos que se mencionan en la enumeración Thread.State. "Espera" que como la documentación dice:

Un hilo está en el estado de espera debido a llamar a uno de los métodos siguientes:

  • Object.wait sin tiempo de espera
  • Thread.join sin tiempo de espera
  • LockSupport.park

"monitor" es el BLOCKED estado, en el que el hilo está esperando para obtener un bloqueo en un objeto (porque está tratando de ingresar un synchronized bloque o método, mientras que otro hilo ya tiene el bloqueo asociado).

+21

Puede ser útil que cualquier persona nueva en el tema (como el OP) sepa que "monitor" se usa como sinónimo de "bloqueo" aquí y en la documentación. –

+5

¿Hay alguna forma de saber qué objeto sincronizado (o línea de código) es el que causa que el hilo se BLOQUEE/Monitorice? – user123321

+2

@ user123321 Puede hacer un volcado de hilo. (Botón en la esquina superior derecha de la pestaña "subprocesos"). Allí puede ver con qué intenta sincronizar el subproceso y qué subproceso mantiene el bloqueo. – Fildor

7

Eso no es un estado de "monitoreo" ... Indica que el hilo está en el estado Thread.State.BLOCKED. Veo que hay otra buena respuesta, solo te indicaré this link para una explicación más detallada

5

El monitor significa que el hilo está esperando para obtener un bloqueo en un objeto. Por ejemplo, cuando un hilo ejecuta un método sincronizado y otro trata de invocarlo en el mismo objeto, no podrá hacerlo hasta que finalice la primera invocación del método. Esto se debe a que el primer hilo tiene un monitor o bloqueo en ese objeto, por lo que el segundo debe esperar hasta que se libere.

De Oracle Threading Tutorials:

". La sincronización se desarrolla alrededor de una entidad interna conoce como el bloqueo intrínseco o monitor de bloqueo (La especificación API a menudo se refiere a esta entidad simplemente como un 'Monitor'.) Cerraduras intrínsecas juegan un rol en ambos aspectos de la sincronización: imponer el acceso exclusivo al estado de un objeto y establecer las relaciones de suceso-antes que son esenciales para la visibilidad ".

Cuestiones relacionadas