Red de conocimientos turísticos - Información de alquiler - Acerca del método de inicio de la clase de subproceso

Acerca del método de inicio de la clase de subproceso

Eche un vistazo al código fuente de la clase Thread y tal vez pueda comprender por qué la documentación lo explica de esta manera.

Este es el código para el método run() de la clase Thread. Obviamente, si el objetivo existe, se ejecutará el método run() del objetivo; de lo contrario, no se hará nada. De esta manera podemos especular (debido a que el método start0 realmente ejecutado por Thread es un método local y no podemos ver su implementación), el método run() de Thread siempre se llama primero, y luego el objetivo (el objeto Runnable en el constructor) es llamado) método run().

public void run() {

if (target ! = null) {

target.run();

}

}

Si tiene alguna duda sobre el origen del objetivo, verifique la implementación del constructor:

hilo público (objetivo ejecutable) {

init( null, target, "Thread-")+ nextThreadNum(), 0);

}

Esto aún no se ha completado.

Implementación inicial:

inicio vacío privado (ThreadGroup g, destino ejecutable, nombre de cadena,

tamaño de pila largo) {

/ / Hay demasiados para publicar. En resumen, el objetivo es ejecutable

}

¿No está claro? En resumen, el método de inicio de un hilo llama a su propio método de ejecución, que a su vez llama al método de ejecución del objeto Runnable utilizado para construirlo. Otra forma de escribir su propio hilo es extender la clase Thread y anular el método de ejecución.