Java定时器TimeTask

package com.alan.timer;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
* Java定时器
* @author 邵海雄
* @date 2016年9月27日 下午5:38:19
* @version v1.0
*/
public class TimerTest {
// 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)
public static void timer1() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("-------设定要指定任务--------");
}
}, 2000);// 设定指定的时间time,此处为2000毫秒
}

// 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行
// schedule(TimerTask task, long delay, long period)
public static void timer2() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("-------设定要指定任务--------");
}
}, 1000, 5000);
}

// 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
// scheduleAtFixedRate(TimerTask task, long delay, long period)
public static void timer3() {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("-------设定要指定任务--------");
}
}, 1000, 2000);
}

// 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
// Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
public static void timer4() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制时
calendar.set(Calendar.MINUTE, 0); // 控制分
calendar.set(Calendar.SECOND, 0); // 控制秒

Date time = calendar.getTime(); // 得出执行任务的时间,此处为今天的12:00:00

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("-------设定要指定任务--------");
}
}, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
}

/**
* 每天下午17:00执行一次
*
* @author 邵海雄
* @date 2016年9月27日 上午10:08:44
* @version v1.0
*/
public static void timer5() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 17); // 控制时
calendar.set(Calendar.MINUTE, 0); // 控制分
calendar.set(Calendar.SECOND, 0); // 控制秒

Date time = calendar.getTime(); // 得出执行任务的时间,此处为今天的17:00:00

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("-------每日17:00执行--------");
}
}, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
}
private static final int DAY=1;//日
/**
* 每月1号执行一次
*
* @author 邵海雄
* @date 2016年9月27日 上午10:11:26
* @version v1.0
*/
public static void timer6() {
final Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0); // 控制时
calendar.set(Calendar.MINUTE, 0); // 控制分
calendar.set(Calendar.SECOND, 0); // 控制秒
Date time = calendar.getTime();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//判断当前是否是当月的1号
if (calendar.get(Calendar.DAY_OF_MONTH)==DAY) {
System.out.println("-------每月1号执行--------");
}
}
}, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
}
public static void main(String[] args) {
// timer1();
// timer2();
// timer3();
// timer4();
// timer5();
timer6();
}
}

时间: 2024-12-16 11:53:25

Java定时器TimeTask的相关文章

java 定时器的几种实现方式以及 配置参数的说明

2.java中常见的定时器 1)借助Java.util.Timer来实现 2)OpenSymphony社区提供的Quartz来实现 3.介绍Timer 利用Timer开发定时任务是主要分为两个步骤: 1)创建定时任务类 示例代码: package org.lzstone.action import java.util.TimeTask public class LzstoneTimeTask extends TimeTask{ public void run(){ //执行的定时器任务 } }

我的第一个java定时器

在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作.这时候我们就要去设置个定时, 接下来就去开发我的第一个java定时器吧,Java计时器实用程序允许您执行线程或任务在一个预先确定的将来的时间,并根据一组这些任务可以重复频率. 设计和实现一个计时器,会用到model-control-view(MVC)设计模式. 开始: 首先来构w建一个最简单的java web 项目吧.这里我用的是最myeclipse,好处自然不必多说,谁用谁知道,当然如果 你要用其他IDE也可以. 在mye

Java 定时器使用

// 定时器 privateTimer timer; timer = new Timer(); timer.schedule(new TimerTask() { public void run() { task(); } }, new Date(), 60*1000); public void task() { } Java 定时器使用,布布扣,bubuko.com

整理:java定时器。

本文纯属个人思路,如有错误,请指正. java的Timer依赖Thread,每一个Timer实际上都是一个Thread. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.TimerTask; /**  * 本类仅为实现TimerTask,意义不大.  * @author 9082046**@qq.com  *  */ public class Task  extends TimerTask {       public void run()

java定时器实现总结

前言:Java定时器目前主要有3种实现方式:JDK组件,Spring Task,Quartz框架. 1. JDK组件(1) java.util.TimerTask MyTimerTask.java: public class MyTimerTask extends TimerTask { @Override public void run() { System.out.println("MyTimerTask, now: " + new SimpleDateFormat("y

Java定时器:Timer

项目中往往会遇到需要定时的任务,例如订单,当用户在某个规定时间内没有操作订单时,订单状态将会发生改变. 那么在这种情况下,我们会用到定时器. 举例: 1 import java.util.Timer; 2 3 4 /** 5 * java定时器 6 * @author Administrator 7 * 8 */ 9 public class TimeTaskTest { 10 public static void main(String[] args) { 11 Timer timer = n

java 定时器的使用

在北京这边实习也一个多月了,也接触了不少东西,今天领导开会,说服务器压力太大,客户很不满意,访问速度上要求很苛刻,我们项目里的一些操作,没有必要写成动态的都改写成静态的,每天定时更新一下静态html页面里面的内容(因为客户每天会定时更新一些内容,而且只更新一次). 听得我好蒙啊,我头一次听说java 的定时操作呢!要命的东西,好坑的啊,晚上抽出了时间,学习了一下java的定时器,也就是一些基本的操作. java定时器主要用到两个类:Timer(计划任务调度类)和TimerTask(具体任务类)

java定时器

以下内容根据 JavaTM Tutorial 和相关API doc和网上的资料翻译整理,以供日后查看和参考: 1.描述 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次或反复多次. TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务. 简单的一个例程: import java.util.Timer; import java.util.TimerTask; /** * Simple demo that uses java.util.T

Java定时器的使用(Timer简介)

在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作.这时候我们就要去设置个定时器,Java中最方便.最高效的实现方式是用java.util.Timer工具类,再通过调度java.util.TimerTask任务. 1.简介 Timer是一种工具,线程用其安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行.实际上是个线程,定时调度所拥有的TimerTasks. TimerTask是一个抽象类,它的子类由 Timer 安排为一次执行或重复执行的任务.实际上就是一