赞
踩
1、普通线程sleep的方式,可用于一般的轮询Polling
new Thread(new Runnable() { @Override public void run() { while (true) { //todo try { Thread.sleep(iDelay); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start();
优点:非常简单的实现,逻辑清晰明了,也是最常见的写法
缺点:在sleep结束后,并不能保证竞争到cpu资源,这也就导致了下次执行时间必定>=iDelay,存在时间精度问题
2、Timer定时器
//Timer + TimerTask结合的方法 private final Timer timer = new Timer(); private TimerTask timerTask = new TimerTask() { @Override public void run() { //todo } };
启动定时器方法:
timer.schedule(TimerTask task, long delay, long period)
立即执行
timer.schedule(timerTask, 0, 1000); //立刻执行,间隔1秒循环执行
延时执行
timer.schedule(timerTask, 2000, 1000); //等待2秒后再执行,间隔1秒循环执行
关闭定时器方法:timer.cancel();
优点:纯正的定时任务,纯java SDK,单独线程执行,比较安全&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。