package cn.everest.threadpool;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class CallUBackHomeHaveLunch {
public static void main(String[] args) {
BackHomeHaveMeal haveMeal = new BackHomeHaveMeal();
FinishedThenBackHome backHome = new FinishedThenBackHome();
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(8);
// executorService.schedule(haveMeal, 10, TimeUnit.SECONDS);
executorService.scheduleAtFixedRate(haveMeal, 10, 5, TimeUnit.SECONDS);
executorService.scheduleWithFixedDelay(backHome, 10, 5, TimeUnit.SECONDS);
try {
while (true) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("ss");
String string = simpleDateFormat.format(new Date());
System.out.println("current second is: " + string);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class BackHomeHaveMeal implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " please, back home to have a meal!");
}
}
class FinishedThenBackHome implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " please, Finished thing and then back home!");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}