java怎么写定时任务

1.java 怎么写定时任务

如果要执行一些简单的定时器任务,无须做复杂的控制,也无须保存状态,那么可以考虑使用JDK 入门级的定期器Timer来执行重复任务。

一、原理JDK中,定时器任务的执行需要两个基本的类: java.util.Timer; java.util.TimerTask;要运行一个定时任务,最基本的步骤如下:1、建立一个要执行的任务TimerTask。2、创建一个Timer实例,通过Timer提供的schedule()方法,将 TimerTask加入到定时器Timer中,同时设置执行的规则即可。

当程序执行了Timer初始化代码后,Timer定时任务就会按照设置去执行。Timer中的schedule()方法是有多种重载格式的,以适应不同的情况。

该方法的格式如下: void schedule(TimerTask task, Date time) 安排在指定的时间执行指定的任务。 void schedule(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行。

void schedule(TimerTask task, long delay) 安排在指定延迟后执行指定的任务。 void schedule(TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。

Timer是线程安全的,此类可扩展到大量同时安排的任务(存在数千个都没有问题)。其所有构造方法都启动计时器线程。

可以调用cancel() 终止此计时器,丢弃所有当前已安排的任务。purge()从此计时器的任务队列中移除所有已取消的任务。

此类不提供实时保证:它使用 Object.wait(long) 方法来安排任务。TimerTask是一个抽象类,由 Timer 安排为一次执行或重复执行的任务。

它有一个抽象方法run()----计时器任务要执行的操作。因此,每个具体的任务类都必须继承TimerTask类,并且重写run()方法。

另外它还有两个非抽象的方法: boolean cancel() 取消此计时器任务。 long scheduledExecutionTime() 返回此任务最近实际 执行的安排 执行时间。

二、例子下面用Timer实现一个简单例子:package stu.timer;import java.util.Date;import java.util.TimerTask;/*** 重复执行的任务** @author leizhimin,2008-10-9 9:20:20*/public class TestTimerTask extends TimerTask { /** * 此计时器任务要执行的操作。 */ public void run() { Date executeTime = new Date(this.scheduledExecutionTime()); System.out.println("本次任务执行的时间是" + executeTime); }}package stu.timer;import java.util.Timer;import java.util.TimerTask;/*** 测试JDK Timer的执行** @author leizhimin,2008-10-9 9:24:35*/public class TestTimer { public static void main(String[] args) { Timer timer = new Timer(); TimerTask task = new TestTimerTask(); timer.schedule(task, 500L, 1000L); }}运行结果:本次任务执行的时间是Thu Oct 09 09:47:57 CST 2008本次任务执行的时间是Thu Oct 09 09:47:58 CST 2008本次任务执行的时间是Thu Oct 09 09:47:59 CST 2008本次任务执行的时间是Thu Oct 09 09:48:00 CST 2008本次任务执行的时间是Thu Oct 09 09:48:01 CST 2008本次任务执行的时间是Thu Oct 09 09:48:02 CST 2008本次任务执行的时间是Thu Oct 09 09:48:03 CST 2008本次任务执行的时间是Thu Oct 09 09:48:04 CST 2008本次任务执行的时间是Thu Oct 09 09:48:05 CST 2008 。

2.在Java中如何设置一个定时任务的代码应该怎么写

指定定时任务的代码如下:public void schedule(TimerTask task,Date time)比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了.有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了.schedule最后一个重载的方法是public void schedule(TimerTask task,Date firstTime,long period)既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少.没关系,schedule四个重载的方法还没用完呢.用下面这个就OK了。

3.java 定时任务怎么写呀

对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。

private java.util.Timer timer;//给你标注一下包,到时候别找错了timer = new Timer(true);timer.schedule(new java.util.TimerTask() { public void run(){ //你要定时执行的功能} }, 0, 30*1000);第一个参数是要操作的功能,一般匿名内部类,第二个参数是要设定延迟的时间,第三个参 数是周期的设定,每隔多长时间执行该操作。 更详细的内容,自己找API Timer类看看吧。

4.java 定时任务怎么写呀

对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。

private java.util.Timer timer;//给你标注一下包,到时候别找错了

timer = new Timer(true);

timer.schedule(

new java.util.TimerTask() { public void run()

{ //你要定时执行的功能} }, 0, 30*1000);第一个参数是要操作的功能,一般匿名内部类,第二个参数是要设定延迟的时间,第三个参

数是周期的设定,每隔多长时间执行该操作。

更详细的内容,自己找API Timer类看看吧

5.Java 如何实现这样的定时任务

JDK中,定时器任务的执行需要两个基本的类:

java.util.Timer;

java.util.TimerTask;

要运行一个定时任务,最基本的步骤如下:

1、建立一个要执行的任务TimerTask。

2、创建一个Timer实例,通过Timer提供的schedule()方法,将 TimerTask加入到定时器Timer中,同时设置执行的规则即可。

当程序执行了Timer初始化代码后,Timer定时任务就会按照设置去执行。

Timer中的schedule()方法是有多种重载格式的,以适应不同的情况。该方法的格式如下:

void schedule(TimerTask task, Date time)

安排在指定的时间执行指定的任务。

void schedule(TimerTask task, Date firstTime, long period)

安排指定的任务在指定的时间开始进行重复的固定延迟执行。

void schedule(TimerTask task, long delay)

安排在指定延迟后执行指定的任务。

void schedule(TimerTask task, long delay, long period)

安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。

Timer是线程安全的,此类可扩展到大量同时安排的任务(存在数千个都没有问题)。其所有构造方法都启动计时器线程。可以调用cancel() 终止此计时器,丢弃所有当前已安排的任务。purge()从此计时器的任务队列中移除所有已取消的任务。此类不提供实时保证:它使用 Object.wait(long) 方法来安排任务。

TimerTask是一个抽象类,由 Timer 安排为一次执行或重复执行的任务。它有一个抽象方法run()----计时器任务要执行的操作。因此,每个具体的任务类都必须继承TimerTask类,并且重写run()方法。另外它还有两个非抽象的方法:

boolean cancel()

取消此计时器任务。

long scheduledExecutionTime()

返回此任务最近实际 执行的安排 执行时间。

6.JAVA实现定时任务的几种方式

Java 基本的定时任务,总结方法有三种:

1 创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果;

2 用Timer和TimerTask与第一种方法相比有如下好处:

当启动和去取消任务时可以控制

第一次执行任务时可以指定你想要的delay时间

3 用ScheduledExecutorService是从的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式,相比于上两个方法,它有以下好处:

相比于Timer的单线程,它是通过线程池的方式来执行任务的

可以很灵活的去设定第一次执行任务delay时间

提供了良好的约定,以便设定执行的时间间隔

7.在Java中如何设置一个定时任务的代码应该怎么写

指定百定时任务的代码如下:

public void schedule(TimerTask task,Date time)

比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了.

有一种情况是度,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了.

schedule最后一个重载的方法是

public void schedule(TimerTask task,Date firstTime,long period)

既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中专用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时属多少.没关系,schedule四个重载的方法还没用完呢.用下面这个就OK了。

8.用java里timer执行定时任务,怎么写

这个是我在网上找的不知道是不是你要的:

java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了。设置定时任务很简单,用Timer类就搞定了。一、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:

package test;

import java.util.Timer;

public class TimeTaskTest {

public static void main(String[] args){ Timer timer = new Timer();

timer.schedule(new Task(), 60 * 1000);

}

}

解释一下上面的代码。上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先new一个Timer对象,然后调用它的schedule方法,这个方法有四个重载的方法,这里我们用其中一个,

public void schedule(TimerTask task,long delay)

首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里 面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。Task类的代码如下

package test;

import java.util.TimerTask;

public class Task extends TimerTask { public void run()

{

System.out.println("定时任务执行");

}

}

我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。第二个参数第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。二、循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schedule方法的是另一个重载函数public void schedule(TimerTask task,long delay,long period)

前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数(看来java里涉及到时间的,跟这个long是脱不了干系了),比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。三、指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schedule四个重载的方法还没用完呢。用下面这个就OK了:

public void schedule(TimerTask task,Date time)

比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schedule最后一个重载的方法是public void schedule(TimerTask task,Date firstTime,long period)

没必要说什么了吧:)四、j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了,这个easy,就没有必要再写示例代码了吧

9.java定时任务怎么实现

/*** 普通thread* 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,* 通过sleep方法来达到定时任务的效果。

这样可以快速简单的实现,代码如下:* @author GT**/public class Task1 {public static void main(String[] args) {// run in a secondfinal long timeInterval = 1000;Runnable runnable = new Runnable() {public void run() {while (true) {// ------- code for task to runSystem.out.println("Hello !!");// ------- ends heretry {Thread.sleep(timeInterval);} catch (InterruptedException e) {e.printStackTrace();}}}};Thread thread = new Thread(runnable);thread.start();}} [java] view plain copyimport java.util.Timer;import java.util.TimerTask;/**** 于第一种方式相比,优势 1>当启动和去取消任务时可以控制 2>第一次执行任务时可以指定你想要的delay时间** 在实现时,Timer类可以调度任务,TimerTask则是通过在run()方法里实现具体任务。 Timer实例可以调度多任务,它是线程安全的。

* 当Timer的构造器被调用时,它创建了一个线程,这个线程可以用来调度任务。 下面是代码:** @author GT**/public class Task2 {public static void main(String[] args) {TimerTask task = new TimerTask() {@Overridepublic void run() {// task to run goes hereSystem.out.println("Hello !!!");}};Timer timer = new Timer();long delay = 0;long intevalPeriod = 1 * 1000;// schedules the task to be run in an intervaltimer.scheduleAtFixedRate(task, delay, intevalPeriod);} // end of main} [java] view plain copyimport java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/***** ScheduledExecutorService是从Java SE5的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式。

* 相比于上两个方法,它有以下好处:* 1>相比于Timer的单线程,它是通过线程池的方式来执行任务的* 2>可以很灵活的去设定第一次执行任务delay时间* 3>提供了良好的约定,以便设定执行的时间间隔** 下面是实现代码,我们通过ScheduledExecutorService#scheduleAtFixedRate展示这个例子,通过代码里参数的控制,首次执行加了delay时间。*** @author GT**/public class Task3 {public static void main(String[] args) {Runnable runnable = new Runnable() {public void run() {// task to run goes hereSystem.out.println("Hello !!");}};ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();// 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间service.scheduleAtFixedRate(runnable, 10, 1, TimeUnit.SECONDS);}}。

转载请注明出处育才学习网 » java怎么写定时任务

知识

她踢足球的英语怎么写

阅读(633)

本文主要为您介绍她踢足球的英语怎么写,内容包括踢足球的英语怎么写,踢足球的英语怎么写,我教她踢足球用英语怎么说。踢足球:play football play,英 [pleɪ] 美 [ple] vt. 游戏;扮演;演奏;播放;同…比赛vi. 演奏;玩

知识

伤字的拼音怎么写

阅读(167)

本文主要为您介绍伤字的拼音怎么写,内容包括伤,字拼音怎么拼,"伤"用拼音怎么写,伤字的拼音怎么拼。1读音编辑shāng2部首笔画编辑部首:亻部外笔画:4总笔画:6五笔86:WTLN五笔98:WTET仓颉:OOKS笔顺编号:323153

知识

探究论文怎么写

阅读(146)

本文主要为您介绍探究论文怎么写,内容包括怎样写探究小论文,科学探究论文怎么写急急急急急急,初一的科学探究论文怎么写啊~。1)“三自”原则 自己选题:选题必须是青少年作者本人发现、提出的。 自己设计和研究:设计中的创造性贡献,必须是作者本

知识

封笔画顺序怎么写

阅读(147)

本文主要为您介绍封笔画顺序怎么写,内容包括封的笔画顺序怎么写,封的笔画顺序怎么写,信的笔画顺序怎么写。信笔画:9来自百度汉语|报错信_百度汉语[拼音] [xìn,shēn] [释义] [xìn]:1.诚实,不欺骗:~用。~守。~物。~货。

知识

造诣怎么写

阅读(680)

本文主要为您介绍造诣怎么写,内容包括造诣的拼音是怎么写,怎么形容“有伟大学术造诣的人”,谁能帮我解释一下:造诣。某行业有一定成就,运用学问、文武、艺术等所达到的程度、境界、水平。技艺高超的人。它指运用学问、文武、艺术等所达到的程

知识

医学检验简历怎么写

阅读(231)

本文主要为您介绍医学检验简历怎么写,内容包括医学检验简历里的专业技能怎么写,急~~~医学检验专业的个人简历怎么写,医学检验专业求职简历怎么写。1. 基本掌握医学检验专业的基础理论知识、基本操作技能,专业英语基础扎实。2. 对常见内科疾

知识

南北的拼音怎么写

阅读(161)

本文主要为您介绍南北的拼音怎么写,内容包括南北战拼音怎么写,北的拼音怎么写,南北少林的拼音怎么写e。南北战nán běi zhàn 南北战争,又称美国内战(American Civil War),是美国历史上一场大规模的内战,参战双方为

知识

原因对策怎么写范文

阅读(198)

本文主要为您介绍原因对策怎么写范文,内容包括原因对策怎么写,原因对策怎么写才正规,原因对策怎么写。“三不”原则(即“不接受不良品、不制造不良品、不流出不良品”)不制造不良品这是每个现场生产人员首先必须保证的,只有不生产不良品才能使

知识

8255初始化程序怎么写

阅读(159)

本文主要为您介绍8255初始化程序怎么写,内容包括8255的初始化程序是什么,怎样编写8255A初始化,8255芯片的初始化编程。地址确定因为A10A9A8A7A6A5A4A3=01010011,A2A1=11为控制字端口,A2A1=10为C口,A2A1=01为B口

知识

打正规欠条怎么写

阅读(146)

本文主要为您介绍打正规欠条怎么写,内容包括正规欠条怎么写图片,私人正规欠条怎么写,正规的个人借条怎样写。欠条,本人__________________(身份证号:__________________________)由于__________

知识

王字楷体字怎么写

阅读(0)

本文主要为您介绍王字楷体字怎么写,内容包括楷书的“王”字怎么写,田字格王字楷体字怎么写,王用楷书怎么写。

知识

王者荣耀拼音怎么写

阅读(192)

本文主要为您介绍王者荣耀拼音怎么写,内容包括王者荣耀的大写拼音怎么写,王者荣耀拼音大写,王者荣耀字什么拼音。王者荣耀常用词汇 在《王者荣耀》中,有许多常用的名词,这些名词对于新手玩家来说是必须要知道的。因为在游戏中大部分玩家都是

知识

情况说明的格式怎么写

阅读(269)

本文主要为您介绍情况说明的格式怎么写,内容包括情况说明格式范文,写情况说明的格式怎么写,情况说明怎么写范文。成立日期,根据现有核定情况无法满足实际要求,以及最近几个月的发票使用情况:有无大笔定单或合同:个人情况说明范文模板、本企业最

知识

小七英文名怎么写

阅读(229)

本文主要为您介绍小七英文名怎么写,内容包括小七用英文怎么说,小七英语怎么写,小七的英文名是什么。数字7英文:sevenseven英 [sev(ə)n] 美 [sɛvn] num. 七个,七n. 七个,七adj. 七的;七个的n. (

知识

java项目需求怎么写

阅读(217)

本文主要为您介绍java项目需求怎么写,内容包括java项目需求分析怎么写,javaweb的项目需求怎么写,项目需求该怎么写。需求文档一般分两类:需求调研报告、需求分析报告调研报告:是记录的用户的原始需求,基本上可以算做是和用户沟通的原始记录。

知识

两个数相除的java程序怎么写

阅读(227)

本文主要为您介绍两个数相除的java程序怎么写,内容包括用Java写一个两个整数相加的程序,很急java方面的,两题编写程序,利用方法重载编写两个数相加的,谁知道用java怎么写出两个多项式相除的程序啊求解啊速度啊。代码如下:public class Test

知识

转行java的简历怎么写

阅读(237)

本文主要为您介绍转行java的简历怎么写,内容包括转行java,简历怎么写,转行java,简历怎么写,转行做程序员,简历该怎么写呢。以下内容没有的可以不写,有需要添加的自己在琢磨,总之不能太简单。教育经历2007/09至今 xxxx大学信息学院计算机科学

知识

自学java怎么写简历

阅读(169)

本文主要为您介绍自学java怎么写简历,内容包括自学java的该怎么写简历,自学java的该怎么写简历,自学java,找工作简历怎么搞。主要把Java的技术点答出来就没问题。回答时,把相关的Java框架说明一遍。应该没问题。其实你已经学完了,工作就应该

知识

macbook怎么写java

阅读(168)

本文主要为您介绍macbook怎么写java,内容包括macbook如何编写java程序,苹果笔记本MacBookPro怎么不用专用Java软件直接写Java程序,怎样在mac上编写并运行java程序。查询登录eclipse官网,找到“Eclipse IDE for java Developers”此处右上角

知识

java怎么写链表

阅读(144)

本文主要为您介绍java怎么写链表,内容包括java如何实现链表,Java写链表结构如何在一个node里写多个数据,java链表。链表是一种重要的数据结构,在程序设计中占有很重要的地位。C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指

知识

java怎么写框架

阅读(205)

本文主要为您介绍java怎么写框架,内容包括java框架怎么写,如何写一个自己的Java框架,java框架常用框架。十大常用框架:SpringMVC 二、Spring 三、Mybatis 四、Dubbo 五、Maven 六、RabbitMQ 七、Log

知识

怎么用java写窗口

阅读(180)

本文主要为您介绍怎么用java写窗口,内容包括怎么用java写一个界面怎么用java写一个界面,如何用Java写一个窗口,,还有怎么弄到自己的程序里,最好有具体的,用java写一个窗口。新建一个窗口,然后实现一个关闭按钮”窗口的功能import java.awt.*

[/e:loop]