Portar código desde el uso de temporizadores para programar el servicio de corte de cortesía

Estoy intentando transferir el código del uso de java temporizadores para usar scheduledexecutorservice

Tengo el siguiente caso de uso

class A {

    public boolean execute() {
         try {
              Timer t = new Timer();
              t.schedule (new ATimerTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}


class B {

    public boolean execute() {
         try {
              Timer t = new Timer();
              t.schedule (new BTimerTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}

¿Debo reemplazar las instancias de Timer en la clase A y la clase B con ScheduledExecutorService y hacer que las clases ATimerTask y BTimerTask se conviertan en una clase Runnable, por ejemplo

class B {

    public boolean execute() {
         try {
              final ScheduledExecutorService scheduler = 
   Executors.newScheduledThreadPool(1);

              scheduler.scheduleWithFixedDelay (new BRunnnableTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}

Es esto correcto

EDIT: una de las principales motivaciones de la transferencia es que las excepciones de tiempo de ejecución lanzadas en TimerTask eliminan ese hilo y no se puede programar más. Quiero evitar el caso para que, incluso si tengo una excepción de tiempo de ejecución, el hilo debe seguir ejecutándose y no detenerse.

Respuestas a la pregunta(3)

Su respuesta a la pregunta