博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Timer和TimerTask的使用--2
阅读量:5026 次
发布时间:2019-06-12

本文共 1956 字,大约阅读时间需要 6 分钟。

上一篇博客当中,利用栈对Timer和TimerTask进行了封装,在实际运用的当中觉得很好用,这次增加了运行过程中的状态信息。

具体代码如下所示:

public class MyTimer {    private MyTimerTask task;    private int date;    private long period;    private Stack
taskStack; private Timer timer; private int state; public static int READY = 0; public static int RUNNING = 1; public static int PAUSE = 2; public static int STOP = 3; public MyTimer(TimerTask timerTask, int date, int period){ task=new MyTimerTask(timerTask); this.date=date; this.period=period; timer=new Timer(); taskStack=new Stack
(); state = READY ; } public void start() { if(state == READY){//准备状态 timer.schedule(task, date, period); }else if(state == PAUSE){//暂停状态 resume(); }else{ return ; } state = RUNNING ; } public void stop() { try { timer.cancel(); taskStack.clear(); task.cancel(); }catch(Exception e){ e.printStackTrace(); } state = STOP; } public void pause() { if(state == RUNNING) { //使用栈保存当前的任务 taskStack.push(new MyTimerTask(task.getCurrentTask())); task.cancel(); state = PAUSE; } } private void resume() { try { //出栈,恢复保存的任务 task = taskStack.pop(); timer.schedule(task, 0, period); }catch(Exception e){ e.printStackTrace(); } } public int getState(){ return this.state; } private class MyTimerTask extends TimerTask{ private TimerTask task; public MyTimerTask(TimerTask task){ this.task=task; } @Override public void run() { task.run(); } public TimerTask getCurrentTask(){ return task; } }}

转载于:https://www.cnblogs.com/huangbei1990/p/6005052.html

你可能感兴趣的文章
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>
Android基础总结(5)——数据存储,持久化技术
查看>>
关于DataSet事务处理以及SqlDataAdapter四种用法
查看>>
bootstrap
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
工程经验总结之吹水"管理大境界"
查看>>
为什么JS动态生成的input标签在后台有时候没法获取到
查看>>
20189210 移动开发平台第六周作业
查看>>
java之hibernate之基于外键的双向一对一关联映射
查看>>
rxjs一句话描述一个操作符(1)
查看>>
第一次独立上手多线程高并发的项目的心路历程
查看>>
ServiceStack 介绍
查看>>
Centos7下载和安装教程
查看>>
无谓的通宵加班之后的思索
查看>>
S1的小成果:MyKTV系统
查看>>