基于Java线程实现后台定时监控

转载:http://littlefermat.blog.163.com/blog/static/59771167200928115047810/

熟悉编写JavaScript的人,都习惯在页面写入setTimeOut来实现web页面的定时监控或事务处理。但是如何在Java服务端来实现这样一个监控机制呢?一般大家都会想到线程。但是一直以来,都没有亲身动手实践过。趁着工作间隙,自己也搬出一段代码来,与大家一起分享线程编程的神奇魔力。

首先创建一个基本抽象类SchedThread,代码内容如下:

Java代码 复制代码
  1. package com.test;   
  2.   
  3. /**  
  4.  * 基于Java线程实现后台定时监控 <p/> Created: Mar 26, 2008 10:08:43 <p/>  
  5.  * <h4>http://tailsherry.javaeye.com</h4>  
  6.  * <p/>  
  7.  *   
  8.  * @author TailSherry  
  9.  */  
  10. public abstract class SchedThread   
  11. {   
  12.     protected static final long NEVER = Long.MAX_VALUE;   
  13.   
  14.     // 定义一个线程锁,保证当前只有一个工作在操作中   
  15.     private final Object lock = new Object();   
  16.   
  17.     // 定义一个Thread变量   
  18.     private Thread thread;   
  19.   
  20.     // 控制线程循环的开关   
  21.     private boolean active = true;   
  22.   
  23.     // 定义一个毫秒级的时间变量,指示何时执行下一个操作   
  24.     private long nextTime;   
  25.   
  26.     /**  
  27.      * 定义个一个抽象的方法用来获取下一个执行操作的时间,可使用NEVER  
  28.      */  
  29.     protected abstract long getNextTime();   
  30.   
  31.     /**  
  32.      * 定义一个抽象的方法,让子类来定义具体的工作过程  
  33.      */  
  34.     protected abstract void executeWork();   
  35.   
  36.     protected String getName()   
  37.     {   
  38.         return getClass().getName();   
  39.     }   
  40.   
  41.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值