目录
1.线程池的实现
1.通过ExecutorService的实现类,ThreadPoolExecutor来实现
2.通过Executor工具类来实现线程池
2.定时器
1.Timer实现定时器
-
构造器
-
public Timer() //创建Timer定时器
-
public void schedule(TimerTask task,long delay,long period) //开启一个定时器,按照计划任务处理TimerTask任务
-
Timer定时器的特点和存在的问题:
- Timer是单线程,处理多个任务按照顺序执行,存在延时与设置定时器的时间有出入
- 可能因为其中的某个任务的异常使Timer线程死掉,从而影响后续任务执行。
2.ScheduledExecutorService实现定时器
ScheduledExecutorService是jdk1.5中引入的并发包,目的是为了弥补Timer的缺陷,ScheduleExecutorService内部为线程池。
-
Executor的方法
-
public static ScheduleExcutorService new ScheduledThreadPool(int corePoolSize) //得到线程池
-
-
ScheduledExecutorService的方法
-
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimerUnit unit) //周期调度方法
-
ScheduledExecutorService的优点
- 基于线程池,某个任务的执行情况不会影响其他定时任务的执行