Tres amigos se sincronizan regularmente. Además, tenemos una escucha global que registra la hora del encuentro.
class Amigo |
import
java.util.concurrent.CyclicBarrier; public class Amigo
extends Thread { private final String name; private final CyclicBarrier barrier; public Amigo(String name, CyclicBarrier barrier) { this.name = name; this.barrier = barrier; } public void run() { while (true) { try { sleep((int) (10000 * Math.random())); System.out.println(name + " esperando
..."); barrier.await(); } catch (Exception e) { e.printStackTrace(); } } } } |
class Amigos |
import java.util.Date; import
java.util.concurrent.CyclicBarrier; public class Amigos { public static void main(String[] args) { Escucha escucha = new Escucha(); CyclicBarrier
cita = new CyclicBarrier(3, escucha); Amigo
pedro = new Amigo("Pedro", cita); Amigo
angel = new Amigo("Angel", cita); Amigo
bruno = new Amigo("Bruno", cita); pedro.start(); angel.start(); bruno.start(); } private static class Escucha implements Runnable { public void run() { System.out.println(new Date()); } } } |
Temas relacionados