El hilo del demonio de Java y su aplicación

Los hilos de Java se dividen en dos tipos: hilo de usuario y hilo de demonio.

Por lo general, usamos subprocesos de usuario, pero los subprocesos de demonio rara vez se usan y solo se usan en algunos escenarios específicos. El subproceso del demonio se utiliza generalmente para servir otros subprocesos. Por ejemplo, la recolección de basura de la JVM es un subproceso del demonio que recolecta objetos basura para otros subprocesos.

Las características del hilo guardián: el ciclo de vida depende de otros hilos. Cuando finaliza el último hilo del usuario, el hilo guardián se verá obligado a terminar. Me gustaba leer novelas de fantasía. ¿Es muy similar al acuerdo maestro-sirviente de la novela? Morir

Código

		System.out.println("主线程运行开始");
        Thread thread = new Thread(new Runnable() {
    
    
            @Override
            public void run() {
    
    
                while (true) {
    
    
                    System.out.println("用户线程运行中");
                    try {
    
    
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
    
    
                        e.printStackTrace();
                    }
                }
            }
        });
        thread.start();
        System.out.println("主线程运行结束");

resultado

主线程运行开始
主线程运行结束
用户线程运行中
用户线程运行中
用户线程运行中
用户线程运行中
用户线程运行中
用户线程运行中

Desde el resultado de la ejecución del código anterior, después de que finaliza el hilo principal, pero el hilo del usuario todavía se está ejecutando, la JVM no puede salir

Código

		System.out.println("主线程运行开始");
        Thread thread=new Thread(new Runnable() {
    
    
            @Override
            public void run() {
    
    
                while (true){
    
    
                    System.out.println("守护线程运行中");
                    try {
    
    
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
    
    
                        e.printStackTrace();
                    }
                }
            }
        });
        thread.setDaemon(true);
        thread.start();
        System.out.println("主线程运行结束");

resultado

主线程运行开始
守护线程运行中
主线程运行结束

Pero si se trata de un subproceso de demonio, después de que finaliza el subproceso principal, el subproceso del demonio se verá obligado a finalizar, lo cual es muy adecuado para realizar algunas tareas en segundo plano.

Escenario de aplicación práctica: Recuerdo que cuando trabajé por primera vez en 18 años, fui responsable del desarrollo de una plataforma de atención para personas mayores, acoplar un colchón, la frecuencia cardíaca del sueño de las personas mayores, la presión arterial y el estado del sueño se mostrarán en la pantalla grande, la recopilación de datos es en tiempo real, la recopilación de datos dura un tiempo El bucle infinito más sokect se usa para obtener el hilo del demonio, porque una vez que finaliza el programa principal, la recopilación de datos no tiene sentido

Supongo que te gusta

Origin blog.csdn.net/qq_38306425/article/details/109159772
Recomendado
Clasificación