Primero, eche un vistazo al estado de ejecución de cada etapa del hilo de Java Running
Un hilo es una entidad en un proceso y es la unidad básica que está programada y enviada independientemente por el sistema. Proceso con otros hilos que pertenecen al mismo proceso. Un hilo puede crear y deshacer otro hilo, y múltiples hilos en el mismo proceso se pueden ejecutar simultáneamente. Debido a las restricciones mutuas entre los hilos, los hilos parecen intermitentes durante la operación.
En los sistemas operativos que introducen subprocesos, los procesos generalmente se usan como unidad básica para asignar recursos, y los subprocesos se utilizan como unidad básica para operación independiente y programación independiente. Dado que los hilos son más pequeños que los procesos y básicamente no poseen recursos del sistema, la sobrecarga de la programación será mucho más pequeña, lo que puede mejorar de manera más eficiente el grado de ejecución concurrente entre múltiples programas en el sistema, mejorando significativamente la utilización y el rendimiento de los recursos del sistema.
Los hilos son un solo proceso de control secuencial en un programa. Ejecutar múltiples hilos simultáneamente en un solo programa para completar diferentes trabajos, llamado multithreading.
La lectura múltiple se usa principalmente para ahorrar tiempo de CPU y utilizarlo.
La lectura múltiple es completar múltiples tareas simultáneamente, no mejorar la eficiencia operativa, sino para mejorar la eficiencia del uso de recursos para mejorar la eficiencia del sistema. Los hilos se implementan cuando se deben completar múltiples tareas al mismo tiempo.
Hay dos formas de implementar múltiples subprocesos en Java
1. Heredar la clase de hilo
2. Implemente la interfaz ejecutable
¿Cuáles son los puntos comunes de estos dos métodos:
No importa qué método se use, debe usar el subproceso (si es una subclase de subproceso, usarlo en sí mismo) para generar el hilo y luego llamar al método Start ().
Las diferencias entre los dos métodos:
1. Una desventaja de heredar la clase de subprocesos es la herencia única, mientras que la implementación de la interfaz ejecutable compensa sus deficiencias, y se puede lograr una herencia múltiple.
2. Si hereda la clase de subprocesos, si genera un objeto de instancia ejecutable, debe generar múltiples objetos de instancia ejecutables y luego usar el hilo para generar múltiples hilos; esta clase y luego usa esta instancia. Es decir, el intercambio de recursos se realiza
Basado en los dos puntos anteriores, se recomienda utilizar el segundo método
El siguiente es un ejemplo para ilustrar
Programa 1:
paquete com.dr.runnable1; // una clase hereda la clase de hilo, entonces esta clase es una clase de múltiples mythread extiende {nombre de cadena privada; /Si para usar múltiples lecturas, debe tener el cuerpo de un método public void run () {// impresión para (int i = 0; i <10; i ++) {System.out.println (this.name+"-------- -> ejecutar ,,,, ");}}} public class Demo1 {public static void main (string args []) {// El primer método runnable r1 = new mythread (" hilo a "); runnable r2 = new myThread ("Hilo B"); ); Métodos // MyThread mt1 = new MyThread ("Thread A"); // MyThread mt2 = new Mythread ("Thread B"); // MyThread mt3 = new MyThread ("Thread C"); // Mt1.Start () ; // mt1.start (); // El hilo solo puede comenzar una vez // mt2.start (); // mt3.start ();Los resultados en ejecución del programa son:
Esto está heredando la clase de subprocesos, el primer método genera múltiples objetos de instancia ejecutables y luego usa hilo para generar múltiples hilos
El segundo método es que debido a que esta clase ha heredado la clase de subprocesos, puede usarlo directamente para generar múltiples hilos.
Programa 2:
paquete com.dr.runnable1; class myThread1 implementa runnable {private int ticket = 10; out .println ("ticket ----->"+(this.ticket--)); :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::: Treal T1 = nuevo hilo (mt); (Mt);Programa de ejecución de resultados:
Este programa implementa Runnable, genera una clase de objetos de instancia y luego usa hilos para generar múltiples hilos.