suppose i want to start the execution of the thread at some specific time,at time which i want,how can i set the time in below code so that i can start the thread at specific time and after that same thread will keep executing after given interval of time.
(in sample code ,suppose i want to start the beeper at midnight,how can i do that?
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() { System.out.println("beep"); }
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}
}
Thanks in advance.
If you want to run the beeper after midnight, you need to change the
initialDelaythat you pass into the scheduler. Work out how much delay you need by subtracting the current time from midnight. This is shown below: