Tengo un cliente principal que mantiene temporizadores de fondo para cada par. Estos temporizadores se ejecutan en un subproceso en segundo plano y en 30 s (el período de tiempo de espera) están programados para realizar la tarea de marcar al par respectivo como fuera de línea. El bloque de código para hacer esto es:
public void startTimer() { timer = new Timer(); timer.schedule(new TimerTask() { public void run() { status = false; System.out.println("Setting " + address.toString() + " status to offline"); // need to send failure message somehow thread.sendMessage(); } }, 5*1000); }
Luego, en el programa principal, necesito alguna forma de detectar cuándo se ejecutó la tarea del temporizador anterior, de modo que el cliente principal pueda enviar un mensaje de failure
a todos los demás compañeros, algo como:
while (true) if (msgFromThreadReceived) notifyPeers();
¿Cómo podría lograr esto con TimerTask? Según tengo entendido, el temporizador se está ejecutando en un subproceso separado, y de alguna manera quiero pasar un mensaje al subproceso principal para notificar al subproceso principal que se ha ejecutado la tarea.