Sobre el estado de ejecución de los hilos de Java

Lo primero que debe tener en cuenta es que el estado referenciado es el estado del subproceso JVM, no el estado del subproceso del sistema operativo. Al mismo tiempo, un hilo solo existirá en un estado.

Estado del hilo, estado enum:

1 、 NUEVO

Se ha creado y no se está ejecutando.

2 、 RUNNABLE

El hilo se está ejecutando en la JVM.

3 、 BLOQUEADO

Bloque en espera de que el bloqueo del monitor ingrese o vuelva a ingresar bloque o método sincronizado sincronizado, activado por Object.wait.

4 、 ESPERANDO

Métodos de activación: Object.wait, join (), LockSupport.park

Espere a que otro hilo termine una tarea específica.

Por ejemplo: un
subproceso ejecuta Object.wait, espera a que otro subproceso finalice la ejecución y se activa ejecutando Object.notify u Object.notifyAll para continuar la ejecución;

El hilo ejecuta Thread.join, esperando la finalización de la ejecución de un hilo específico.

5 、 TIMED_WAITING

Esperando el límite de tiempo.

触发 方法 : Thread.sleep 、 Object.wait (tiempo de espera) 、 Thread.join (tiempo de espera) 、 LockSupport.parkNanos 、 LockSupport.parkUntil。

6 、 TERMINADO

El estado del hilo de la tarea completada.

 

Nota:

1. El método thread Thread.getState obtiene el estado actual del hilo. Este método se usa para monitorear el estado del sistema, no para sincronizar el control.

2. El método Unsafe.park suspende el hilo.

3. El método Thread.join llama internamente al método Object.wait para lograr la espera.

4. El estado BLOQUEADO enfatiza que está esperando ingresar a la lógica de sincronización.

 

Supongo que te gusta

Origin www.cnblogs.com/niejunlei/p/12731788.html
Recomendado
Clasificación