Iniciar un nuevo hilo en Java
-
Cree un hilo ampliando la clase
Thread
en Java -
Cree un hilo implementando la interfaz
Runnable
en Java -
Crear hilo por el objeto
Thread
en Java - Crear hilo usando la clase anónima en Java
- Crear hilo usando la función lambda en Java
-
Crear hilo usando la clase
Executors
en Java
![Iniciar un nuevo hilo en Java](/img/Java/feature-image---start-new-thread-in-java.webp)
Este tutorial presenta cómo iniciar un nuevo hilo en Java.
Un hilo es la unidad más pequeña de un programa / proceso que se ejecuta en tiempo real y maximiza la utilización de la CPU.
Java admite el concepto de subprocesos y permite crear un subproceso para crear aplicaciones de subprocesos múltiples. En este artículo, aprenderemos a crear un nuevo hilo en Java.
Para crear un nuevo hilo en Java, podemos usar la clase Thread
o la interfaz Runnable
. Veamos algunos ejemplos.
Cree un hilo ampliando la clase Thread
en Java
En Java, Thread
es una clase que se utiliza para crear un nuevo hilo y proporciona varios métodos de utilidad. En este ejemplo, usamos la clase Thread
extendiéndola y luego comenzando usando el método start()
. El método start()
inicia un nuevo hilo. El método run()
se utiliza para realizar la tarea mediante el hilo recién creado. El hilo ejecuta automáticamente este método. Vea el ejemplo a continuación.
public class SimpleTesting extends Thread {
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
st.start();
}
public void run() {
try {
System.out.println("New Thread Start");
Thread.sleep(1000);
System.out.println("Thread sleep for 1 second.");
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
Producción :
New Thread Start
Thread sleep for 1 second.
Cree un hilo implementando la interfaz Runnable
en Java
La interfaz Runnable
se puede utilizar para crear un nuevo hilo, pero no proporciona las características que proporciona la clase Thread. Esta interfaz proporciona un método run()
que se puede utilizar para realizar tareas. Vea el ejemplo a continuación.
public class SimpleTesting implements Runnable {
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
Thread one = new Thread(st);
one.start();
}
public void run() {
try {
System.out.println("New Thread Start");
Thread.sleep(1000);
System.out.println("Thread sleep for 1 second.");
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
Producción :
New Thread Start
Thread sleep for 1 second.
Crear hilo por el objeto Thread
en Java
Podemos crear directamente un nuevo hilo usando el objeto Thread
y el método start()
, pero este hilo no realiza ninguna tarea ya que no proporcionamos la implementación del método run()
. Podemos obtener información del hilo usando sus métodos incorporados como getState()
, getName()
, etc. Vea el ejemplo a continuación.
public class SimpleTesting {
public static void main(String[] args) {
Thread one = new Thread("New Thread");
System.out.println("Thread state : " + one.getState());
one.start();
System.out.println("Thread state : " + one.getState());
System.out.println("Thread Name : " + one.getName());
System.out.println("Thread state : " + one.getState());
}
}
Producción :
Thread state : NEW
Thread state : RUNNABLE
Thread Name : New Thread
Thread state : TERMINATED
Crear hilo usando la clase anónima en Java
Esta no es una nueva forma de crear un nuevo hilo; simplemente usamos una clase anónima usando la clase Runnable
, la pasamos al constructor Thread
y comenzamos el hilo. Vea el ejemplo a continuación.
public class SimpleTesting {
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
public void run() {
try {
System.out.println("New Thread Start");
Thread.sleep(1000);
System.out.println("Thread sleep for 1 second.");
} catch (InterruptedException e) {
System.out.println(e);
}
}
});
t1.start();
}
}
Producción :
New Thread Start
Thread sleep for 1 second.
Crear hilo usando la función lambda en Java
La función de función Lambda se agregó a la versión de Java 8 que se puede utilizar para sustituir la clase anónima en Java. Aquí, usamos la función lambda para crear un nuevo hilo. Esta es una forma compacta y corta de crear un hilo. Vea el ejemplo a continuación.
public class SimpleTesting {
public static void main(String[] args) throws InterruptedException {
new Thread(() -> {
try {
System.out.println("New Thread Start");
Thread.sleep(1000);
System.out.println("Thread sleep for 1 second.");
} catch (InterruptedException e) {
System.out.println(e);
}
}) {
{ start(); }
}.join();
}
}
Producción :
New Thread Start
Thread sleep for 1 second.
Crear hilo usando la clase Executors
en Java
Los Executors
es una clase que pertenece al paquete de concurrencia de Java y se puede utilizar para crear aplicaciones multiproceso. Entonces, también podemos usarlo para crear un nuevo hilo. El método newSingleThreadExecutor()
inicializa un nuevo hilo y luego es ejecutado por la función submit()
. Vea el ejemplo a continuación.
import java.util.concurrent.Executors;
public class SimpleTesting {
public static void main(String[] args) throws InterruptedException {
Executors.newSingleThreadExecutor().submit(() -> {
try {
System.out.println("New Thread Start");
Thread.sleep(1000);
System.out.println("Thread sleep for 1 second.");
} catch (InterruptedException e) {
System.out.println(e);
}
});
}
}
Producción :
New Thread Start
Thread sleep for 1 second.