`

定时任务Java编写综述之Java语言级的JDK自带API

阅读更多

定时任务Java编写综述

目前我所用过的定时任务机制主要分三类:OS级的Linux crontab命令方式、Java语言级的JDK自带API、第三方API接口如Quartz(当然,其他MVC框架如Spring基于Quartz实现了更人性化的API接口,此类接口一并归入Quartz类族)。

 

这三种方式相比,OS级不用专门开启监听器,占用系统资源较少,是定时任务首选的实现方式;JDK自带API主要是TimerTimeTask,这些API提供的接口功能简单,往往不能满足用户定时任务设置需要;QuartzJava语言编写的API,其可以单独部署,也可以作为系统的模块嵌入既有代码中,通过开启监听触发定时任务的方式实现,相对而言,特别是用此种方式开辟大量监听很耗资源。

 

下面分别介绍这三种常用的定时任务实现方式。

 

2. Java语言级的JDK自带API

java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks
一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建。

完整的Timer如下:

java.util.Timer timer = new java.util.Timer(true);

【注】true 说明这个timerdaemon方式运行(优先级低,程序结束timer也自动结束),注意,javax.swing 中也有一个Timer类,如果import中用到swing包,要注意名字的冲突。

 

TimerTask task = new TimerTask() {

public void run() {

... //每次需要执行的代码放到这里面。

}

};

 

调度task的方法有:

timer.schedule(task, time);

// timeDate类型:在指定时间执行一次。

 

timer.schedule(task, firstTime, period);

// firstTimeDate类型,periodlong

// firstTime时刻开始,每隔period毫秒执行一次。

 

timer.schedule(task, delay)

// delay long类型:从现在起过delay毫秒执行一次

 

timer.schedule(task, delay, period)

// delaylong,periodlong:从现在起过delay毫秒以后,每隔period

// 毫秒执行一次。

 

完整的例子

由两个类组成,一个定制任务,一个调用java.util.Timer

定制任务:import java.util.Timer;

 

public class TimerTaskTest extends java.util.TimerTask{

public void run() {

// TODO Auto-generated method stub

System.out.println("start");

}

}

 

import java.util.Timer;  

public class TimerTaskTest extends java.util.TimerTask{  

  public void run() {  

   // TODO Auto-generated method stub   

   System.out.println("start");  

}  

}  

 

调用java.util.Timer

import java.util.Timer;

public class Test {

public static void main(String[] args){

Timer timer = new Timer();

timer.schedule(new TimerTaskTest(), 1000, 2000);

}

}

 

import java.util.Timer;  

public class Test {  

public static void main(String[] args){  

   Timer timer = new Timer();  

   timer.schedule(new TimerTaskTest(), 1000, 2000);  

}  

}  

根据上面的介绍,便可以在1秒后,每隔2秒执行一次程序

 

参考文献:http://blog.csdn.net/majian_1987/article/details/8730544

分享到:
评论

相关推荐

    jdk_api_1.8-JAVA中文版API手册

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 1)Java 8允许我们给接口添加...

    Java JDK API 1.6 官方版下载

    jdk1.6方便别人使用不用从官网上查找,主要用于java开发.JDK Java Development Kit是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK,本站提供java jdk1.6官方版下载。JDK...

    java开发手册 api文档(jdk1.8中文)

    java开发手册 api文档(jdk1.8中文)

    java jdk api中文开发文档(免币)

    java jdk api中文开发文档

    java8 JDK1.8 API 英文java帮助文档

    JDK 1.8 API JDK API 1.8.CHM是一款jdk1.8的API帮助文档,可以帮助使用java jdk的用户们通过api及时查找到对应的类,接口,框架等详细信息的帮助手册。JDKAPI1.8chm格式 如果打开不显示内容 可以右键 属性 常规 解除...

    Java jdk api 1.8_google.CHM JDK API 1.8谷歌翻译中文版在线参考手册

    Java jdk api 1.8_google.CHM JDK API 1.8谷歌翻译中文版在线参考手册,附加使用说明,无需安装,下载直接使用,方便快捷。

    Java应用安装包(eclipse+JDK_API+Java反编译)

    Java语言具有功能强大和简单易用两个特征,具有简单性、面向对象、分布式等特点,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。JDK(Java Development Kit)称为Java开发包或Java开发工具...

    jdk_api_1.8中文版

    jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java...

    java JDK+API

    Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。

    JavaCompiler --JDK6 API的简介(java动态编译)

    java动态编译的几种技术介绍。JavaCompiler --JDK6 API的简介(java动态编译)

    java API JDK 1.8 英文版

    java API JDK 1.8 英文版 java API JDK 1.8 英文版java API JDK 1.8 英文版java API JDK 1.8 英文版java API JDK 1.8 英文版java API JDK 1.8 英文版java API JDK 1.8 英文版

    JDK 1.8 API中文版&JDK; 1.6 API中文版

    JDK 1.8 API中文版&JDK;...JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷歌翻译,非人工翻译。

    JAVA JDK1.8_API(官方下载).zip

    JAVA JDK1.8 API, 官方JDK手册。JAVA程序员开发必备手册,方便深入JDK 源码、学习源码!

    java jdk1.8java jdk1.8

    java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8java jdk1.8...

    jdk1.8中文 java api jdk 中文

    java api jdk 中文 java api jdk 中文

    Java Diary - JDK自带的java数据库

    Java Diary - JDK自带的java数据库,并且是完全的关系型书库据----Derby

    jdk api 1.8_中文版.rar

    jdk api 1.8_google.CHM亲测双击即可打开。之前在网上下载了很多,要么双击打开报错,要么打开后里面是空白,终于找到一款好用的chm jdk api文档,跟大家分享下。

    java_jdk_api文档

    java_jdk_api文档java_jdk_api文档java_jdk_api文档java_jdk_api文档

    Java jdk api 1.8中文帮助手册

    Java jdk api 1.8中文帮助手册

    JDK1.7中文版API

    建议官方只收1积分,汉化绝大多数方法与函数只有少数1.7少用方法没有汉化,并含使用案例,jdk api 1.7是一款JAVA1.7中文版的API帮助文档,众所周知JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的...

Global site tag (gtag.js) - Google Analytics