Las Bibliotecas de JavaLas Bibliotecas de Java\CountDownLatch (class) java.util.concurrentCountDownLatch (class) java.util.concurrent\Ejemplo 2. Señal de fin: sincronización de llegada

class Tarea2

import java.util.concurrent.CountDownLatch;

 

public class Tarea2 extends Thread {

      private CountDownLatch signal;

 

      public Tarea2(CountDownLatch signal) {

            this.signal = signal;

      }

 

      public void run() {

            // hace su tarea

            System.out.println("termino ...");

            signal.countDown();

      }

}    

class LlegadaSincronizada

import java.util.concurrent.CountDownLatch;

 

public class LlegadaSincronizada {

      private static final int N = 10;

 

      public static void main(String[] args)

            throws InterruptedException {

            Tarea2[] tareas = new Tarea2[N];

            CountDownLatch signal =

                  new CountDownLatch(tareas.length);

            for (int i = 0; i < tareas.length; i++)

                  tareas[i] = new Tarea2(signal);

 

            for (Tarea2 tarea : tareas)

                  tarea.start();

 

            // espero N señales

            signal.await();

            System.out.println("fin");

      }

}    

 

principio