En la publicación anterior cubrí casi todos los términos relacionados con los subprocesos de Java. Aquí aprenderemos el ciclo de vida del hilo en Java, también veremos la programación del hilo.
Lectura recomendada:
Multithreading en Java
Ciclo de vida del hilo de Java
- El método de inicio crea los recursos del sistema necesarios para ejecutar el hilo, programa el hilo para que se ejecute y llama al método de ejecución del hilo.
- Un hilo se convierte en “No ejecutable” cuando ocurre uno de estos eventos:
- Si el sueño.
- El hilo llama al método de espera.
- El hilo cuelga de la E / S.
- Un hilo muere naturalmente cuando se cierra el método de ejecución.
El siguiente diagrama ilustra claramente las distintas etapas del ciclo de vida de los subprocesos de Java.
2. Programación de hilos
- La ejecución de varios subprocesos en una sola CPU se llama, en un orden determinado planificación.
- En general, el ejecutable al ras con el más alto prioridad está activo (corriendo)
- Java es prioridad
- Si se activa un subproceso de alta prioridad y se está ejecutando un subproceso de baja prioridad
- Entonces el hilo de alta prioridad se ejecuta inmediatamente
- Permite procesar bajo demanda
- Uso eficiente de la CPU
2.1 Tipos de programación
- Espera y notificación
- En espera [wait()] y notificando [notify(), notifyAll()] proporciona medios de comunicación entre subprocesos que se sincronizan con el mismo objeto.
- wait (): cuando se invoca el método wait () en un objeto, el hilo que ejecuta ese código abandona inmediatamente su bloqueo en el objeto y mueve el hilo al estado de espera.
- notificar (): Esto despierta los subprocesos que han llamado a esperar () en el mismo objeto y mueve el subproceso al estado listo.
- notifyAll (): despierta todos los hilos que llamaron a wait () en el mismo objeto.
- Corre y cede
- Yield () se usa para dar a otros subprocesos con la misma prioridad la oportunidad de ejecutarse, es decir, hace que el subproceso en ejecución actual cambie al estado ejecutable.
- Duerme y despierta
- nSleep () se usa para pausar un hilo durante un período de tiempo específico, es decir, mueve el hilo en ejecución actual al estado de suspensión durante un período de tiempo específico, antes de moverlo al estado ejecutable. Thread.sleep (n. De milisegundos);
2.2 Prioridad de hilo
- Cuando se crea un hilo de Java, hereda su prioridad del hilo que lo creó.
- Puede cambiar la prioridad de un hilo en cualquier momento después de su creación utilizando el fijar prioridad método.
- Las prioridades de los subprocesos son números enteros entre MIN_PRIORITY (1) y PRIORIDAD_MÁX (10) . Cuanto mayor sea el número entero, mayor será la prioridad. Normalmente, la prioridad del hilo será 5.
2.3 métodos isAlive () y join ()
- El método isAlive () se usa para determinar si un hilo todavía está activo. Esta es la mejor manera de determinar si un hilo ha comenzado pero aún no ha completado su método run (). isAlive () booleano final;
- El método join () no estático de la clase Thread permite que un hilo “se una al final” de otro hilo. Este método espera a que finalice el hilo en el que se llama. unión void final ();
3. Bloquear hilos
- Al leer de una secuencia, si la entrada no está disponible, el hilo lo hará bloquear
- El hilo está suspendido (“colgado”) hasta que la E / S esté disponible
- Permite que otros hilos se activen automáticamente
- Cuando la E / S está disponible, el hilo se activa de nuevo.
- Se convierte en “ejecutable“Es decir, entra en estado listo
4. Agrupación de subprocesos
- Los grupos de subprocesos proporcionan un mecanismo para reunir varios subprocesos en un solo objeto y manipular esos subprocesos todos a la vez, en lugar de individualmente.
- Para insertar un nuevo hilo en un grupo de hilos, el grupo debe
- ser especificado explícitamente al crear el hilo
- – Hilo público (ThreadGroup, ejecutable ejecutable)
- – Hilo público (ThreadGroup, nombre de cadena)
- – Hilo público (grupo ThreadGroup, ejecutable ejecutable, nombre de cadena)
- Un hilo no se puede mover a un nuevo grupo después de que se crea el hilo.
- Cuando se inicia una aplicación Java por primera vez, el sistema de ejecución de Java crea un ThreadGroup denominado main.
- Los grupos de subprocesos de Java son implementados por la clase java.lang.ThreadGroup.
Palabras clave objetivo: ciclo de vida del hilo de Java, Tutorial de subprocesamiento de Java, usando subprocesos en Java, javathread run.