考虑到项目中定位解析时是一个耗时的操作,由于我开启的一个服务接受定位并做相关处理,里面涉及到耗时操作,为了避免每次都每次new Thread新建对象性能差,线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或OOM,而且还没有定期执行和延时执行的能力,不够灵活,所以我采用该线程池替代new thread
创建一个定长线程池并且支持定时及周期性任务执行
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.schedule(new Runnable() {
@Override
public void run() {
、、、、、、、
}
}, 5, TimeUnit.SECONDS);//
延迟5秒执行。
定期执行示:
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
、、、
}
}, 1, 5, TimeUnit.SECONDS);
表示延迟1秒后每5秒执行一次