定时器在客户端运行一会后,导致客户端卡死
用了2种定时器,但是都会有不同程度的导致客户端卡死
第一种,采用的timer
timer.scheduleAtFixedRate(retask, 5000, 60000);
间隔时间越短出现卡死的时间越早
第二种 是ScheduledExecutorService
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(retask, 10, 30, TimeUnit.SECONDS);
执行的retask 是这个RefreshTask 类:
class RefreshTask extends TimerTask
{
@Override
public void run() {
isRunning = true;
try {
displayCurrentKeyWordInfoNoRuleByFilename();
} catch (Exception e) {
}
System.gc();
}
}
其中的 displayCurrentKeyWordInfoNoRuleByFilename 方法只是一个数据库的查询操作,目前搞不清楚到底是什么原因造成的。