Cuando comienza un programa Java, un hilo se ejecuta de inmediato. La importancia del hilo principal se refleja en dos aspectos:
Aunque el hilo principal se crea automáticamente cuando se inicia el programa, puede ser controlado por un objeto de subproceso. Para hacer esto, debe llamar al método CurrentThread () para obtener una referencia, que es un miembro estático público de la clase de subprocesos. Su forma habitual es la siguiente:
Hilo estático CurrentThread ()
Este método devuelve una referencia al hilo que lo llamó. Una vez que obtenga una referencia al hilo principal, puede controlar el hilo principal como lo hace para controlar otros hilos.
Comencemos por revisar los siguientes ejemplos:
// Control del hilo principal.class CurrentThreadDemo {public static void main (string args []) {thread t = thread.currentThread (); del hilo t.setName ("mi hilo"); .println (n);En este programa, la referencia al hilo actual (o el hilo principal) se obtiene llamando a CurrentThread (), que se almacena en la variable local t. El programa luego muestra la información del hilo. Luego, el programa llama a SetName () para cambiar el nombre interno del hilo. La información del hilo se muestra nuevamente. Luego, un número de ciclo comienza a disminuir de 5, deteniéndose por un segundo cada vez. La pausa se realiza mediante el método Sleep (). La declaración Sleep () estipula claramente que el tiempo de retraso es de 1 milisegundo. Presta atención al bloque de try/captación fuera del bucle.
El método Sleep () de la clase de subprocesos puede aumentar una excepción de InterruptedException. Esta situación ocurrirá cuando otros hilos quieran perturbar el hilo de dormir. Este ejemplo simplemente imprime el mensaje si fue interrumpido. En los programas reales, debe ser flexible para tratar tales problemas. El siguiente es el resultado de este programa:
Hilo actual: hilo [principal, 5, principal] después del cambio de nombre: hilo [mi hilo, 5, main] 54321
Tenga en cuenta que T se usa como salida cuando el parámetro se usa en la instrucción println (). El orden de visualización: nombre del hilo, prioridad y nombre de grupo. Por defecto, el nombre del hilo principal es principal. Su prioridad es 5, que también es el valor predeterminado, y Main también es el nombre del grupo de subprocesos al que pertenece. Un grupo de subprocesos es una estructura de datos que controla el estado de los subprocesos como un conjunto completo. Este proceso es manejado por un entorno de tiempo de ejecución patentado, por lo que no entraré en detalles aquí. Después de cambiar el nombre del subproceso, T se emite nuevamente. Esta vez, se muestra el nuevo nombre de hilo.
Estudiemos los métodos definidos por la clase de hilo en el programa con más cuidado. El método Sleep () indica que el hilo está llamado a suspender de acuerdo con el tiempo del milisegundo. Su forma habitual es la siguiente:
Duerme vacío estático (largos millones de segundos) lanza interrupción de lacepción
El tiempo para colgar se define claramente como milisegundos. Este método puede organizar una excepción de InterruptedException.
Hay una segunda forma del método Sleep (), que se muestra a continuación, que le permite especificar si el tiempo está en milisegundos o nanosegundos como ciclos.
Sueño vacío estático (largo millones de segundos, int nanosegundos) lanza interrupción de Excepción
La segunda forma solo está disponible si el período de tiempo está permitido en nanosegundos. Como se muestra en el programa anterior, puede usar SetName () para establecer el nombre del hilo y usar getName () para obtener el nombre del subproceso (este proceso no se refleja en el programa). Estos métodos son miembros de la clase de hilo y se declaran de la siguiente manera:
Final void setName (string threadname) String final getName ()
Aquí, ThreadName se refiere específicamente al nombre del hilo.