Resumir los métodos comunes de subprocesamiento

Tabla de contenido

Uno, método de unión

Dos, método de interrupción

Tres, método currentThread

Cuatro, método isAlive

Cinco, método setDaemon

Seis, otros métodos

Siete, termina el hilo sin una enfermedad

8. Terminando el hilo violentamente asesinado


Uno, método de unión

Únete método: el hilo de la ejecución de este método entra en el estado de bloqueo , y luego se aparta de bloqueo al estado preparado después de que el hilo llamando a los extremos de método .

Nota: El
objeto hilo debe llamar al método de inicio antes de llamar al método de unión , de lo contrario , el hilo nunca entrará en el estado de ejecución .

Dos, método de interrupción

Método de interrupción: finaliza el estado de bloqueo del hilo en el proceso de llamar al método de espera de la clase Object o al método de unión y al método de suspensión de la clase , y genera InterruptedException cuando se llaman los métodos de espera, unión y suspensión .

Teóricamente, la diferencia entre beforeTime y afterTime debería ser de 30 segundos, pero debido a que el objeto de hilo ejecuta el método de interrupción después de 1 segundo, el objeto de hilo finaliza el estado de bloqueo antes, lo que da como resultado una diferencia de menos de 30 segundos entre beforeTime y afterTime.

Cuando el hilo ejecuta la línea de código, el hilo entra en el estado de bloqueo, pero el hilo principal ejecuta el código "counterThread.interrupt ();" después de 10 segundos, lo que hace que el estado de bloqueo del hilo finalice.

Después de que el subproceso del contador se ejecuta timeThread.join, entra en el estado de bloqueo. El subproceso de tiempo tarda al menos 30 segundos en finalizar. Después de 15 segundos, el subproceso del contador llama al método de interrupción para que el subproceso del contador finalice el estado de bloqueo antes de tiempo.

Tres, método currentThread

Método currentThread: devuelve el objeto de hilo que se está ejecutando actualmente.

 

Cuatro, método isAlive

Método isAlive: determina si el hilo está en un estado listo, en ejecución o bloqueado; si lo está, devuelve verdadero; de lo contrario, devuelve falso.

El subproceso A ejecuta el método jion llamado por el subproceso B "muerto", luego el subproceso A no se bloqueará.

Cinco, método setDaemon

Método setDaemon: se utiliza para establecer un hilo que aún no ha llamado al método de inicio del hilo como hilo demonio. El subproceso del demonio se utiliza principalmente para proporcionar servicios para la ejecución de otros subprocesos (el mecanismo de recolección de basura en Java es el subproceso del demonio), y este subproceso pertenece al subproceso que lo creó.
Nota:
1. El subproceso del demonio termina con la terminación del último subproceso que no es del demonio, como se muestra en el siguiente código:

El subproceso principal termina, pero debido a que el subproceso no demonio timeThread no finaliza inmediatamente, el subproceso del demonio countThread se ejecuta durante un período de tiempo; después de que finaliza el subproceso no demonio timeThread, porque no hay otros subprocesos que no sean demonio ejecutándose proceso, el subproceso del demonio countThread también deja de ejecutarse, aunque el método de ejecución del subproceso guardián countThread es un bucle sin fin.

2. Otros subprocesos no demonio iniciados en el proceso no terminarán con el final de un determinado subproceso no demonio, como se muestra en el siguiente código:

Después de un período de tiempo, hay un subproceso menos (subproceso de tiempo) en el proceso javaw.exe en el "Administrador de tareas", pero el subproceso del contador sigue funcionando

3. El proceso termina con el final del último hilo que no es demonio, el siguiente código:

Descripción: Ejecute el programa anterior, el proceso finaliza con el final del hilo de tiempo (hilo no demonio).


Seis, otros métodos

void start (): inicia el hilo y la máquina virtual Java es responsable de llamar al método run () del hilo. Es ilegal iniciar un hilo varias veces.
sueño void (largos millis): clase Thread método estático , el hilo entra en el estado de bloqueo , y entra en el estado listo (Ejecutable) después de que el tiempo especificado (en milisegundos) que se alcance , en lugar de entrar en el estado de ejecución inmediatamente. void yield (): Un método estático. El subproceso actual deja de tomar recursos de la CPU y vuelve al estado listo , de modo que otros subprocesos con una prioridad no menor que este subproceso tienen la posibilidad de ser ejecutados. void setPriority (int newPriority): establece la prioridad del subproceso actual. Cuanto mayor sea la prioridad del subproceso, más veces se ejecutará el subproceso. La prioridad del subproceso de Java está representada por un número entero, y el rango de valores es 1 ~ 10. La clase Thread tiene las siguientes tres constantes estáticas: 1, static int MAX_PRIORITY la    prioridad más alta es 10; 2, static int NORM_PRIORITY    valor de prioridad predeterminado de 5; 3, static int MIN_PRIORITY    valor de prioridad más bajo de 1; Nota: múltiples clases creadas por el mismo thread Thread, el hilo con la prioridad de hilo más alta es más probable que obtenga más tiempos de ejecución





; Pero para los subprocesos creados por diferentes clases de subprocesos, cuanto mayor sea la prioridad del subproceso, más tiempos de ejecución pueden no ser necesariamente, y la complejidad del código de este método de ejecución está relacionada.
int getPriority (): Obtiene la prioridad del hilo actual.

Siete, termina el hilo sin una enfermedad

8. Terminando el hilo violentamente asesinado

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_46383618/article/details/113705106
Recomendado
Clasificación