Тема против обработчика для опроса

Мне нужен поток опроса для выполнения некоторых сетевых операций каждые 5 минут. Я придумал следующие два решения. Что было бы лучше и почему? Я ищу, чтобы иметь минимальное использование процессора и батареи.

pollThread = new Thread(){
      public void run(){
          while(toggle) {
              // Do stuff
              sleep(FIVE_MINUTES);
          }
      }
};
pollThread.start();

ИЛИ ЖЕ

Runnable doStuffRunnable = new Runnable() {
     @Override
     public void run() {
         // Do stuff
         handler.postDelayed(this, FIVE_MINUTES);
     }
}

1 ответ

Ответ зависит от того, используете ли вы Обработчик и для других задач. Если нет, не будет большой разницы; все равно будет нить, которая просыпается каждые 5 минут, чтобы делать то, что вы хотите. Если обработчик также обрабатывает другие задачи, его использование, вероятно, будет более эффективным, чем наличие отдельного потока для каждой задачи, так как для него требуется только один поток и может быть проведена оптимизация в отношении использования процессора.

Другие вопросы по тегам