Если вам действительно нужно использовать его для повторения задач, каждое планирование должно выглядеть примерно так:

аюсь портировать код с использованием Javaтаймеры использоватьscheduledexecutorservice

У меня есть следующий вариант использования

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;
         }
    }

}

Должен ли я просто заменить экземпляры Timer в классе A и классе B на ScheduledExecutorService и сделать класс ATimerTask и BTimerTask классом Runnable, например,

class B {

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

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

}

Это верно.

РЕДАКТИРОВАТЬ: Одна из основных причин портирования заключается в том, что исключения во время выполнения, генерируемые в TimerTask, убивают этот поток и его нельзя запланировать дальше. Я хочу избежать этого случая, так что даже если у меня есть исключение времени выполнения, поток должен продолжать выполняться, а не останавливаться.

Ответы на вопрос(1)

Ваш ответ на вопрос