I have written a code in Java, something like this:
....
while (conditionX) {
//fetch m
....
t = new Thread(new SomeRunnable(m));
t.start();
Thread.sleep(500);
}
....
class SomeRunnable implements Runnable {
String msisdn;
public SomeRunnable (String m) {
msisdn = m;
}
@Override
public void run() {
do {
//Statement block S uses msisdn, sets condition Y
Thread.sleep(30000);
} while (conditionY);
}
}
I am not comfortable with the number Thread.sleep()s I have used in the code. To avoid this I tried ScheduledExecutor etc, but couldn’t really figure out a way to do what I want.
I need half a second delay before a new thread is started, and in the thread, there has to be a 30s delay before the statement block S is tried again.
Please help me with a better way to code this using proper classes.
I have only provided an idea of how my code’s work flow is, if I’ve to provide more info, please let me know.
Thanks
You can implement a TimerTask and override
run(). Then you can schedule the task periodically with:When you want to cancel your task, you can do that by calling
cancel()