首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java定时器兑现

2012-10-28 
java定时器实现这两天在重构代码,发现有几个map有出现内存泄露的问题。考虑到独立性,通过java 的timetask来

java定时器实现

这两天在重构代码,发现有几个map有出现内存泄露的问题。考虑到独立性,通过java 的timetask来实现。

这里要注意的地方就是任务起始时间的获得。

?

import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * 定时清除类 防止内存泄露 每天清除一次 凌晨三点 *  * @author franciscolv *  */public class ScheduleTask extends TimerTask {private Timer timer = new Timer();private ZooKeeperController zkcontroller;private ZKAgentMain zkAgentMain;public ZKAgentMain getZkAgentMain() {return zkAgentMain;}public void setZkAgentMain(ZKAgentMain zkAgentMain) {this.zkAgentMain = zkAgentMain;}public void start() {                //这里设置为凌晨三点执行Calendar date = Calendar.getInstance();date.set(Calendar.HOUR, 15);date.set(Calendar.MINUTE, 0);date.set(Calendar.SECOND, 0);date.set(Calendar.MILLISECOND, 0);Date time = date.getTime();timer.scheduleAtFixedRate(this, time, 1000 * 60 * 60 * 24);}@Overridepublic void run() {//这里做定时任务的处理}public void setCalendar(Calendar calendar) {this.calendar = calendar;}public Calendar getCalendar() {return calendar;}}

?

?

其实,Map类的缓存最好还是使用linkHashMap或者之类的带有LRU或者FIFO算法的Map来实现。

手写并发LRU Map值得推荐。等哪天有需求了,写一下。

热点排行