class Tarea1 |
import
java.util.concurrent.CountDownLatch; public class Tarea1
extends Thread { private CountDownLatch signal; public Tarea1(CountDownLatch signal) { this.signal = signal; } public void run() { try { signal.await(); } catch (InterruptedException ignore) { } System.out.println("empiezo
..."); //
hace su tarea } } |
class SalidaSincronizada |
import java.util.ArrayList; import java.util.List; import
java.util.concurrent.CountDownLatch; public class
SalidaSincronizada { public static void main(String[] args) throws InterruptedException { CountDownLatch signal = new CountDownLatch(0); List<Tarea1> tareas = new
ArrayList<Tarea1>(); tareas.add(new Tarea1(signal)); tareas.add(new Tarea1(signal)); tareas.add(new Tarea1(signal)); // ... N veces for (Tarea1 tarea : tareas) tarea.start(); System.out.println("ya"); // todos empiezan a la señal signal.countDown(); } } |
Temas relacionados