Dos formas de personalizar los hilos
Personalice una clase de implementación de interfaz ejecutable y luego construya un hilo, es decir, pasar una clase de interfaz ejecutable al hilo.
nuevo hilo o escriba una subclase de hilo para anular su método de ejecución. (Nuevo hilo y anular el método de ejecución es en realidad una forma de clase interna anónima)
Código de muestra
public static void main (string [] args) {new Thread (new runnable () {@OverridePublic Void run () {System.out.println ("Crear hilo pasando un destino runnable!");}}). inicio (); new Thread () {@overDepublic Public Void void run () {system.println ("Crear hilt por el metro de raneded overDed !");};}.comenzar();}Los métodos mencionados anteriormente para construir hilos de 1 y 2 están diseñados con objetos de clase anónimos debido al método de escritura de código. Ahora se realizan las siguientes instrucciones auxiliares:
1. Para el primer párrafo, pasé directamente en un caso anónimo ejecutable. Puede personalizar una instancia ejecutable y luego obtener un hilo en forma de nuevo hilo (runnable);
2. Para el segundo párrafo, puede definir específicamente una clase para extender la clase base de subprocesos, y luego nueva esta nueva clase de hilo.
3. Para estos dos segmentos, cree objetos de clase anónimos directamente con el nuevo hilo. Puede definir una variable Thread1 y Thread2, y luego usar thread1.start () thread2.start () para iniciar el hilo;
Análisis del código fuente
¿Cuál es la diferencia entre estos dos métodos? El efecto final de los dos es el mismo. Desde el nivel del código fuente, el método de ejecución predeterminado de hilo (si no está sobrescribido) es el método Ejecutar que llama a Target (el destino no está vacío). El objetivo es la clase de interfaz ejecutable en la que pasamos.
public sincronizado void start () {if (threadstatus! = 0) tirar nueva ilegalThreadStateException (); group.add (this); boolean inicio = false; try {start0 (); inicio = true;} finalmente {try {if (! inicio) {group.ThreadStartfailed (this);} Catch (Showeable Ignore)}}}}}}}}}}}}}}}}}}}}}}}}}}El inicio del hilo eventualmente llamará a Native Start0, lo que hará que la máquina virtual JVM llame al método de ejecución del hilo.
public void run () {if (target! = null) {target.run ();}}Aquí el objetivo es un objeto ejecutable en el hilo
objetivo privado ejecutable;
Resumir
El método Ejecutar para reescribir el hilo es el método Ejecutar ejecutado por el hilo al comenzar.
Al pasar Runnable, el subproceso ejecuta el método de ejecución predeterminado al comenzar. El método Ejecutar llamará al objetivo aprobado y llamará al método Ejecutar del objetivo.
El efecto de ambos es el mismo, aquí es solo para ayudarnos a ver las diferencias en los detalles del código.
Lo anterior es un análisis completo de los métodos de inicio y ejecución en los hilos Java introducidos por el editor. Espero que sea útil para todos. Si desea saber más, ¡preste atención a Wulin.com!