Here are three alternatives to scheduling a task run repeatedly without using threads:
1.Using loop construct:
boolean temp=true; While (temp) { for (int i = 0; i < 999999999; i++) { i=i; } // our code}
2. Using Timer and TimerTask classes (java.util.*):
int initTime = 10000; // start after 10 seconds int Time = 5000; // repeat every 5 seconds Timer timer = new Timer(); TimerTask task = new TimerTask() { public void run() { // our code } };timer.scheduleAtFixedRate(task, initTime, Time);
3. Using The Timer class (java.swing.*):
int Time = 5000; // repeat every 5 seconds Timer timer = new Timer(Time, new ActionListener() { public void actionPerformed(ActionEvent evt) { // our code } }); timer.start();
Swing and utility timer classes provide the same functionality. The main difference between the two classes is that each java.util.Timer object creates one thread. Swing Timer class uses a single private thread to schedule ALL timers. The first variant creates a delay by keeping the CPU busy.