ScheduledExecutorService线程执行计划服务,创建对应的线程池,通过向线程池队列添加计划执行的线程,设置执行计划的延迟时间,然后开启计划服务即可间隔执行计划的线程。
一.无返回结果的执行计划线程
public void scheduledNoReturen() {
/**
* 使用Executors创建执行计划服务的线程池 而不是Executor或ExecutorService
* 三者的区别:
* Executor接口使用execute()方法执行Runnable任务
* ExecutorService继承了Executor接口,使用submit()方法可执行Callable和Runnable任务
* Executors接口则提供了创建不同类型创建线程池的静态方法 以上三个接口使用shutDown()方法终止线程池
*
* newScheduledThreadPool(corePoolSize) corePoolSize:指定该线程池中核心线程数量
* 默认以Integer.MAX_VALUE为线程池容量
*/
ScheduledExecutorService service = Executors.newScheduledThreadPool(2);
/**
* 创建执行任务
*/
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("task has executed");
}
};
/**
* 开启服务,执行计划任务
* task initialDelay:任务第一次执行距离开启服务的延迟时间
* period:第一次执行后每次执行的间隔
* unit:执行间隔的时间单位
*
* schedul