Для чего нужен Timer? Если есть Handler и Executor?

367
17 мая 2017, 06:17

Для чего нужен Timer? Если есть Handler и Executor?

С Таймером всегда какие то траблы. То не в основном потоке, то не запускается потому что timer не успел запуститься на 10 милисекунд. Короче просто ужас.

А Handler чем то на Event похож.

Answer 1

Handler - это фишка только для Android-а. С его помощью можно выполнять блоки кода, завёрнутые в Runnable, отложено, а также отложено на заданное время в Looper потоках, таких как UI-поток в Android.

Executor - это лишь интерфейс, который по-разному используется классами расширяющими этот интерфейс. Например выполнить метод через execute сразу же, отложено или в соседнем потоке, на усмотрение разработчика и того, как он реализует класс, расширяющий этот интерфейс.

Timer - класс, изначально предназначенный для выполнения блока кода, оборачиваемого в TimerTask, который кстати расширяет Runnable, в фоновом потоке. У него достаточно функционала, для решения исторически накопившихся, часто возникающих задач, связанных с выполнением кода в фоновом потоке, уJava-разработчиков. И эти задачи до Timer нельзя было решить быстро и удобно в пару строк кода, в виду отсутствия среди стандартных компонентов Java удобного Handler, который существует благодаря Looper-архитектуре UI-потока в Android.

Это лишь интерпретация событий, которая возникла при прочтении описаний к этим классам и интерфейсу.

READ ALSO
Проблема с Autowired - spring. Возвращает null

Проблема с Autowired - spring. Возвращает null

Со спрингом не дружу, только начинию изучатьНе могу понять, почему не хочет автоваридся PersistenceFacade

339
Условие для проверки номера телефона

Условие для проверки номера телефона

Добрый день, пытаюсь импортнуть в базу телефонные номера, но столкнулся с такой проблемой что некоторые телефоны начинаются с 89xx а нужно...

413
Как произвести мат. вычисление строки “10+2”

Как произвести мат. вычисление строки “10+2”

Делаю калькулятор, хочу что бы при нажатии клавиши = из текстового поля JTextarea считалась строка например 10+2 и затем производилось матвычисление

381