Hace unos meses publicamos un post sobre un Pool de Hilos hecho a medida y me quedó pendiente publicar el soporte que da Java para el Pool de Hilos.
Aprovechando el último post ahí va cómo se usa el ThreadPool de Java5:
Primero creo un Runnable:
| public class MyRunnable implements Runnable {
private final long countUntil; MyRunnable(long countUntil) { this.countUntil = countUntil; } @Override public void run() { long sum = 0; for (long i = 1; i < countUntil; i++) { sum += i; } System.out.println(sum); } } |
Y luego se lo asigno al Executor:
| import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class Main { private static final int NTHREDS = 10; public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(NTHREDS); for (int i = 0; i < 500; i++) { Runnable worker = new MyRunnable(10000000L + i); executor.execute(worker); } //No se aceptan más hilos hasta que finalizan los que están en la cola // and finish all existing threads in the queue executor.shutdown(); // espero hasta que todos los hilos han finalizado while (!executor.isTerminated()) { } System.out.println(«Finalizado todos los Hilos»); } } |
Pues sí, algo superfluo usar las clases que pasaba en el otro post , pero es que uno está ya mayor 🙂

Replica a Ashder Cancelar la respuesta