最近阿里巴巴出来了一个Java编码规范,于是就赶紧集成了插件放进了AS里面进行代码检测。插件为:结果就发现了一个问题:
仔细一看是让ScheduledExecutorService来代替Timer,好,那就开始按照规范写:
这样一来就完全符合规范了,Timer的缺点总结一下就三点:
1:Timer的时间判断是基于绝对时间,就算可以通过修改系统时间来改变。
2:所有的TimerTask只在一个线程执行。
3:Timer并不会捕获异常,任何一个除外异常就会导致所有下面安排的不会执行。
好,说到这里就可以对这些进行封装了,首先,封装简单的线程池。
可以看到,标红的地方建议我们手动创建线程池,这一块的基础知识就不介绍,直接进行封装:
以上是对线程池的封装,当然,我们也可以把一开始介绍的ScheduledExecutorService加进去,好,直接封装:
java不仅要学会封装,还要会其中的原理,希望大家能够从原理出发,发现什么问题可以提出。