Запланируйте задачу после определенного интервала в Java - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть класс

class A {
     int a=0;
     public int getVal() {
         return a;
     }
}

, и я должен периодически выполнять функцию getVal.Как мне сделать это из другого класса б?Спасибо.

Ответы [ 4 ]

5 голосов
/ 28 сентября 2011

Old Way

java.util.Timer


Новый (и предпочтительный) способ

java.util.concurrent.Executors


Осуществление

В частности, используйте класс ScheduledExecutorService.

3 голосов
/ 28 сентября 2011

Различные потенциальные проблемы с java.util.Timer перечислены в разделе 6.2.5 «Практического параллелизма Java».Например:

  • Timer ведет себя плохо, если TimerTask работает слишком долго.
  • Timer ведет себя плохо, если TimerTask создает непроверенное исключение.

Авторы этой книги пришли к выводу, что «нет оснований использовать Timer в Java 5.0 или более поздней версии».

Вместо этого они рекомендуют использовать ScheduledExecutorService.Вы можете создать его либо с помощью конструктора ScheduledThreadPoolExecutor, либо с помощью фабричных методов newScheduledThreadPool в Executors.Последний вариант лучше.

1 голос
/ 28 сентября 2011

Просто взгляните на Threads в Java.вы можете сделать этот класс работоспособным и периодически выполнять функцию, а задержка может быть сгенерирована с помощью функции sleep ().В противном случае вы можете сделать вызывающую функцию работоспособной.

1 голос
/ 28 сентября 2011

Проверьте класс таймера.

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Timer.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...