logo

Hilos de Java | Cómo crear un hilo en Java

Hay dos formas de crear un hilo:

  1. Al extender la clase Thread
  2. Implementando la interfaz Runnable.

Clase de hilo:

La clase Thread proporciona constructores y métodos para crear y realizar operaciones en un hilo. La clase Thread extiende la clase Object e implementa la interfaz Runnable.

Constructores de clase Thread de uso común:

  • Hilo()
  • Hilo (nombre de cadena)
  • Hilo (ejecutable r)
  • Hilo (r ejecutable, nombre de cadena)

Métodos comúnmente utilizados de la clase Thread:

    ejecución pública vacía():se utiliza para realizar acciones para un hilo.inicio público vacío():inicia la ejecución del hilo. JVM llama al método run() en el hilo.sueño vacío público (milisegundos largos):Hace que el subproceso que se está ejecutando actualmente entre en suspensión (cese temporalmente la ejecución) durante el número especificado de milisegundos.unión nula pública():espera a que muera un hilo.unión pública vacía (milisegundos largos):espera a que un hilo muera durante los milisegundos especificados.público int getPriority():devuelve la prioridad del hilo.public int setPriority (int prioridad):cambia la prioridad del hilo.cadena pública getName():devuelve el nombre del hilo.setName público vacío (nombre de cadena):cambia el nombre del hilo.Hilo público currentThread():devuelve la referencia del hilo que se está ejecutando actualmente.público int getId():devuelve la identificación del hilo.Hilo público.Estado getState():devuelve el estado del hilo.público booleano está vivo():prueba si el hilo está vivo.rendimiento vacío público():hace que el objeto de subproceso que se está ejecutando actualmente se detenga temporalmente y permita que otros subprocesos se ejecuten.suspensión nula pública():se utiliza para suspender el hilo (obsoleto).currículum público vacío():se utiliza para reanudar el hilo suspendido (obsoleto).parada de vacío público():se utiliza para detener el hilo (obsoleto).booleano público esDaemon():prueba si el hilo es un hilo de demonio.setDaemon público vacío (booleano b):marca el hilo como demonio o hilo de usuario.interrupción pública nula():interrumpe el hilo.booleano público está interrumpido():prueba si el hilo ha sido interrumpido.público estático booleano interrumpido():prueba si el hilo actual ha sido interrumpido.

Interfaz ejecutable:

La interfaz Runnable debe ser implementada por cualquier clase cuyas instancias estén destinadas a ser ejecutadas por un subproceso. La interfaz ejecutable tiene solo un método llamado run().

exportar gimp como jpg
    ejecución pública vacía():se utiliza para realizar acciones para un hilo.

Iniciando un hilo:

El método inicio() de la clase Thread se utiliza para iniciar un hilo recién creado. Realiza las siguientes tareas:

  • Se inicia un nuevo hilo (con una nueva pila de llamadas).
  • El hilo pasa del estado Nuevo al estado Ejecutable.
  • Cuando el hilo tenga la oportunidad de ejecutarse, se ejecutará su método run() de destino.

1) Ejemplo de subproceso Java ampliando la clase Thread

Nombre del archivo: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Producción:

algoritmos de clasificación fusionar clasificación
 thread is running... 

2) Ejemplo de subproceso Java mediante la implementación de la interfaz Runnable

Nombre del archivo: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Producción:

 thread is running... 

Si no está ampliando la clase Thread, su objeto de clase no será tratado como un objeto thread. Por lo tanto, debe crear explícitamente el objeto de clase Thread. Estamos pasando el objeto de su clase que implementa Runnable para que el método run() de su clase pueda ejecutarse.

3) Uso de la clase Thread: Thread(String Name)

Podemos usar directamente la clase Thread para generar nuevos hilos usando los constructores definidos anteriormente.

Nombre del archivo: MyThread1.java

cómo encontrar números bloqueados en Android
 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Producción:

 My first thread 

4) Uso de la clase Thread: Thread(Runnable r, nombre de cadena)

Observe el siguiente programa.

Nombre del archivo: MyThread2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Producción:

 My new thread Now the thread is running ...