Ejecutando tareas paralelas: Pools de hebras
Paralelizar tareas puede ser una forma rápida y sencilla de optimizar un proceso que se compone de múltiples subprocesos pequeños. Y una forma sencilla de implementar ésta paralelización es el uso de los Pools de hebras.
El método para crear un Pool de hebras es el siguiente (comentaré todo en los comentarios del código:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class Main
{
public static void main(String args[])
{
// Creamos un pool de hebras, en éste caso con 10 hebras, podremos
// configurarlo con el número de hebras que necesitemos
ExecutorService exec = Executors.newFixedThreadPool(10);
// Ejecutaremos 100 tareas de ejemplo, que se irán ejecutando poco a poco
for (int i = 0; i < 100; i++)
{
// Creamos cada tarea. Puede ser cualquier clase que implemente el interfaz Runnable
exec.execute(new Runnable()
{
public void run()
{
System.out.println("Ejecutando la hebra " + Thread.currentThread() + "...");
}
});
}
// Finalizamos el pool de hebras
exec.shutdown();
try
{
// Eperamos 50 segundos a que todo finalize
boolean b = exec.awaitTermination(50, TimeUnit.SECONDS);
System.out.println("Estado tras la espera... " + (b ? "¡Finalizado!" : "No finalizado..."));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
Sencillo, ¿a que si? Probadlos, no podréis vivir sin ellos a partir de ahora
¿Te ha gustado?
¡Suscribete al feed RSS!