Вы должны взглянуть на Quartz , который является системой планирования заданий на основе Java.
Возможно, вы захотите использовать что-то вроде кварцевого механизма , который может выполнять такие задачи, как выполнение пропущенных задач (например, во время сбоя ahem ) и это избавляет от попыток управлять потоками.
Например, если вы используете потоки и переводите их в спящий режим и будите их через 86400 секунд (один день), вы проснетесь и на час позже (день = 82800 секунд) или рано (день = 90000 секунд) при переходе на летнее время. день, так что будьте осторожны с любым решением, которое вы выберете
Встроенный способ JDK состоит в том, чтобы сделать то, что предложили другие, и сначала рассчитать:
Затем вы можете использовать что-то вроде исполнителя расписания для отправки задач, и запустить их с определенной задержкой. Это намного проще, чем варианты, которые есть у вас в таких средах, как Quartz , но не требует внешней зависимости.
Кроме того, вы всегда должны перечислять, какой JDK вы используете, чтобы люди могли предоставить решения для вашей версии JDK.
Как заявили другие, Quartz - это выбор, с его помощью вы можете выполнять cron-подобные операции, задания или триггеры, вот ссылка на эту тему: http: // www. ibm.com/developerworks/java/library/j-quartz/index.html
Вы можете запустить поток, который рассчитывает разницу до следующих 3 часов дня и спит в течение этого времени. Когда он просыпается, он выполняет метод, пересчитывает и спит. Вы это имели в виду?
Jcrontab - это планировщик, написанный на Java. Цель проекта - предоставить полностью функциональные расписания для проектов Java.