Тема против обработчика для опроса
Мне нужен поток опроса для выполнения некоторых сетевых операций каждые 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 минут, чтобы делать то, что вы хотите. Если обработчик также обрабатывает другие задачи, его использование, вероятно, будет более эффективным, чем наличие отдельного потока для каждой задачи, так как для него требуется только один поток и может быть проведена оптимизация в отношении использования процессора.