介绍
Timer和ScheduledExecutorService,可以定时周期性的执行任务
Timer、TimerTask,是被synchronized修饰的线程安全的类
使用ScheduledExecutorService代替Timer吧
多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。
代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45package com.aware; import java.util.TimerTask; /** * @author yanyugang * @description 任务一 * @date 2020-01-18 9:08 */ public class MyTask extends TimerTask { @Override public void run(){ System.out.println("com.aware.MyTask run"); } } package com.aware; import java.util.TimerTask; /** * @author yanyugang * @description 任务二 * @date 2020-01-18 9:08 */ public class MyTask2 extends TimerTask { @Override public void run(){ System.out.println("com.aware.MyTask2 run"); } } public static void main(String[] args){ Timer timer=new Timer(); timer.schedule(new MyTask(), 1000, 2000); timer.schedule(new MyTask2(), 1000, 2000); ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10); executorService.scheduleAtFixedRate(new MyTask(), 1, 2, TimeUnit.SECONDS); executorService.scheduleAtFixedRate(new MyTask2(), 1, 2, TimeUnit.SECONDS); }
最后
以上就是失眠画笔最近收集整理的关于Timer和ScheduledExecutorService的全部内容,更多相关Timer和ScheduledExecutorService内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复