62 lines
1.7 KiB
Java
62 lines
1.7 KiB
Java
package de.swingbe.ses;
|
|
|
|
import java.util.concurrent.*;
|
|
import java.util.*;
|
|
|
|
//System.out.println();
|
|
import java.io.*;
|
|
|
|
class SchedulerExecutorServiceExample {
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
System.out.println(
|
|
"A count-down-clock program that counts from 10 to 0");
|
|
|
|
// creating a ScheduledExecutorService object
|
|
ScheduledExecutorService scheduler
|
|
= Executors.newScheduledThreadPool(11);
|
|
|
|
// printing the current time
|
|
System.out.println(
|
|
"Current time : "
|
|
+ Calendar.getInstance().get(Calendar.SECOND));
|
|
|
|
// Scheduling the tasks
|
|
for (int i = 10; i >= 0; i--) {
|
|
scheduler.schedule(new Task(i), 10 - i,
|
|
TimeUnit.SECONDS);
|
|
}
|
|
|
|
// remember to shutdown the scheduler
|
|
// so that it no longer accepts
|
|
// any new tasks
|
|
scheduler.shutdown();
|
|
}
|
|
}
|
|
|
|
class Task implements Runnable {
|
|
private int num;
|
|
public Task(int num) { this.num = num; }
|
|
public void run()
|
|
{
|
|
if(num%1==0){
|
|
// create instance of Random class
|
|
Random rand = new Random();
|
|
// Generate random integers in range 0 to 1999
|
|
int randInt = rand.nextInt(2000);
|
|
|
|
System.out.println("num: " +num+", rand: " + randInt);
|
|
try {
|
|
Thread.sleep(randInt);
|
|
} catch (InterruptedException e) {
|
|
System.out.println("Another thread has interrupted this one, message: " + e.getMessage() + ", trace: " + e.getStackTrace());
|
|
}
|
|
System.out.println("num: "+num+", sleep() done.");
|
|
}
|
|
System.out.println(
|
|
"num: " + num + " Current time : "
|
|
+ Calendar.getInstance().get(Calendar.SECOND));
|
|
}
|
|
}
|