Timer和TimerTask的使用
来源:互联网 发布:爱古筝软件 编辑:程序博客网 时间:2024/04/28 14:32
Timer可以定时执行TimerTask任务,使用起来也十分的方便。
以下的代码是输出当前时间的TimerTask
//输出当前时间的任务private static TimerTask task=new TimerTask(){@Overridepublic void run() {System.out.println(getCurrentTime());}};
以下代码是使用Timer执行TimerTask
//Timer定时执行TimerTask任务Timer timer=new Timer();timer.schedule(task, date, period);
使用TimerTask执行的时候没有暂停和恢复,结束之后就没办法再次执行了。
以下代码使用栈保存当前的任务实现暂停和恢复的功能。
命令接口
public interface MyTimerI {public void start();public void stop();public void pause();public void resume();}
实现命令接口
public class MyTimerImpl implements MyTimerI{private MyTimerTask task;private int date;private long period;private Stack<MyTimerTask> taskStack;private Timer timer;public MyTimerImpl(TimerTask timerTask,int date,int period){task=new MyTimerTask(timerTask);this.date=date;this.period=period;timer=new Timer();taskStack=new Stack<MyTimerTask>();}@Overridepublic void start() {timer.schedule(task, date, period);}@Overridepublic void stop() {timer.cancel();}@Overridepublic void pause() {//使用栈保存当前的任务taskStack.push(new MyTimerTask(task.getCurrentTask()));task.cancel();}@Overridepublic void resume() {//出栈,恢复保存的任务task=taskStack.pop();timer.schedule(task, 0, period);} private class MyTimerTask extends TimerTask{private TimerTask task;public MyTimerTask(TimerTask task){this.task=task;}@Overridepublic void run() {task.run();}public TimerTask getCurrentTask(){return task;}}}
使用方法
public static void main(String args[]){//每隔1秒钟执行一次,不等待MyTimerI timer = new MyTimerImpl(task,0,1000);timer.start();timer.pause();timer.resume();timer.stop();}
0 0
- Timer和TimerTask的使用
- Timer和TimerTask的使用
- Timer 和TimerTask的使用
- Timer和TimerTask的使用
- Timer和TimerTask的使用
- Timer和TimerTask的使用
- Timer 和TimerTask 使用
- Timer,Timertask的使用
- timer,TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- Timer和TimerTask的简单使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- Timer和TimerTask类的使用
- java类Timer和TimerTask的使用
- HDU 5875 Function 大连网络赛
- MVC4使用log4net
- Yii2.0 分页的实现
- c++模版链表的实现
- 1117. Eddington Number
- Timer和TimerTask的使用
- 配置Android的SDK,DNK,JDK,ANT打包APK环境
- SecureCRT超时自动断开解决方案
- 创业公司最常见的 88 个法律问题
- mysql 语句积累
- 画中画的实现
- 创业者如何写商业计划书,诸葛亮有个经典范本
- 顶部导航栏可点击可滑动,仿微信仿豆瓣
- 第3周项目2--建设“顺序表”算法库