El entorno operativo de este tutorial: sistema Windows 7, versión Java 10, computadora DELL G3.
1. Nuevo : los subprocesos que no se han iniciado después de la creación se encuentran en este estado.
2. Ejecutable : incluye En ejecución y Listo en el estado del subproceso del sistema operativo, es decir, el subproceso en este estado puede estar ejecutándose o puede estar esperando que el sistema operativo le asigne tiempo de ejecución.
3. En espera : a los subprocesos en este estado no se les asignará tiempo de ejecución del procesador. Tienen que esperar a que otros subprocesos los despierten explícitamente. El siguiente método hará que el hilo caiga en un estado de espera:
El método Object::wait() no establece el parámetro Timeout;
Método Thread::join() sin configurar el parámetro Timeout;
Método LockSupport::park().
4. Espera temporizada : a los subprocesos en este estado no se les asignará tiempo de ejecución del procesador, pero no necesitan esperar a que otros subprocesos los despierten explícitamente. El sistema los despertará automáticamente después de un cierto período de tiempo. El siguiente método pondrá el hilo en un estado de espera de fecha límite:
Método Object::wait() con el parámetro Timeout establecido;
Método Thread::join() con parámetro de tiempo de espera establecido;
LockSupport::método parkNanos();
Método LockSupport::parkUntil().
5. Bloqueado : el hilo está bloqueado. La diferencia entre "estado bloqueado" y "estado de espera" es que el "estado bloqueado" está esperando adquirir un bloqueo exclusivo. Este evento ocurrirá cuando otro hilo abandone el bloqueo; El "estado de espera" es esperar un período de tiempo o que se produzca la acción de activación. El hilo entrará en este estado mientras el programa espera ingresar al área de sincronización.
6. Terminado : el estado del hilo del hilo terminado, el hilo ha finalizado la ejecución.
Los anteriores son los seis estados de los subprocesos de Java. Espero que puedan ser útiles para todos.
Más guía de aprendizaje de Java: tutorial de java