import java.util.concurrent.*;
/**
* java线程池的使用,周期性执行任务,类似定时任务
*/
public class ExecutorServiceTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);
scheduledThreadPool.schedule(new Runnable() {
@Override
public void run() {
// 延迟3秒执行
System.out.println("延迟3秒执行,当前线程:" + Thread.currentThread().getName() + "当前任务时间:"
+ System.currentTimeMillis());
}
}, 3, TimeUnit.SECONDS);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// 延迟1秒,每隔3秒执行
System.out.println("延迟1秒,每隔3秒执行,当前线程:" + Thread.currentThread().getName() + "当前任务时间:"
+ System.currentTimeMillis());
}
}, 1, 3, TimeUnit.SECONDS);
}
}
运行结果:
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210491567
延迟3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210493567
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210494568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210497568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210500568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210503568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210506568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210509569
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210512569
延...................
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。