Categoría:Java:Hilos

De ChuWiki


Tutorial sobre Hilos en Java y Clases Principales[editar]

En Java, la concurrencia se puede lograr mediante el uso de hilos. Un hilo representa la unidad más pequeña de procesamiento que puede ejecutar instrucciones de manera independiente. En este tutorial, aprenderemos sobre la creación y gestión de hilos en Java, así como el uso de clases principales como `Thread` y `Executor`.

Introducción a los Hilos en Java[editar]

Java proporciona una API de concurrencia robusta que permite la creación y gestión de hilos de ejecución. Los hilos en Java se pueden crear de dos maneras principales:

  • Extendiendo la clase Thread.
  • Implementando la interfaz Runnable.

Creación de Hilos con la Clase Thread[editar]

La forma más común de crear un hilo en Java es extendiendo la clase Thread. Aquí hay un ejemplo de cómo hacerlo:

class MiHilo extends Thread {
    public void run() {
        // Código a ejecutar en el hilo
    }
}

public class Principal {
    public static void main(String[] args) {
        MiHilo hilo = new MiHilo();
        hilo.start(); // Inicia la ejecución del hilo
    }
}

Creación de Hilos con la Interfaz Runnable[editar]

Otra forma de crear un hilo en Java es implementando la interfaz Runnable. Aquí está cómo se hace:

class MiRunnable implements Runnable {
    public void run() {
        // Código a ejecutar en el hilo
    }
}

public class Principal {
    public static void main(String[] args) {
        MiRunnable miRunnable = new MiRunnable();
        Thread hilo = new Thread(miRunnable);
        hilo.start(); // Inicia la ejecución del hilo
    }
}

Ambos métodos tienen el mismo resultado: la ejecución del método run() en un hilo separado.

Uso de Executors[editar]

La API java.util.concurrent proporciona la clase Executor para la gestión de hilos de manera más flexible. Un Executor es un objeto que ejecuta tareas proporcionadas. Aquí hay un ejemplo de cómo usar Executor:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Principal {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(5); // Crea un pool de hilos con 5 hilos
        for (int i = 0; i < 10; i++) {
            Runnable tarea = new MiTarea(); // Suponiendo que MiTarea es una clase que implementa Runnable
            executor.execute(tarea); // Ejecuta la tarea en uno de los hilos del pool
        }
        executor.shutdown(); // Apaga el ExecutorService después de que todas las tareas han sido completadas
    }
}

El uso de Executor simplifica la gestión de hilos al proporcionar un pool de hilos reutilizables para ejecutar tareas.

Conclusiones[editar]

En este tutorial, hemos cubierto los conceptos básicos de la concurrencia en Java, incluyendo la creación de hilos utilizando la clase Thread y la interfaz Runnable, así como el uso de la clase Executor para una gestión más avanzada de hilos. Es importante tener en cuenta las consideraciones de concurrencia al desarrollar aplicaciones Java para garantizar un comportamiento correcto y eficiente.