java定时任务怎么实现

import java.util.concurrent.TimeUnit;/ ScheduledExecutorService是从Java SE5的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式。相比于上两个方法,它有以下好处:1>相比于Timer的单线程,它是通过线程池的方式来执行任务的 2>可以很灵活的去设定第一次执行任务delay...
java定时任务怎么实现
/**
* 普通thread
* 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,
* 通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下:
* @author GT
*
*/
public class Task1 {
public static void main(String[] args) {
// run in a second
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
System.out.println("Hello !!");
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
[java] view plain copy
import 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() {
@Override
public void run() {
// task to run goes here
System.out.println("Hello !!!");
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
// schedules the task to be run in an interval
timer.scheduleAtFixedRate(task, delay, intevalPeriod);
} // end of main
}
[java] view plain copy
import 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 here
System.out.println("Hello !!");
}
};
ScheduledExecutorService service = Executors
.newSingleThreadScheduledExecutor();
// 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间
service.scheduleAtFixedRate(runnable, 10, 1, TimeUnit.SECONDS);
}
}2018-01-18
mengvlog 阅读 8 次 更新于 2025-07-18 23:23:07 我来答关注问题0
  • 在Java后台编写定时任务,最直接且高效的工具是使用Java的Timer类。首先,你需要在项目中引入Timer类,这样可以避免找不到类的问题。初始化时,可以这样操作:private java.util.Timer timer;timer = new Timer(true);创建一个TimerTask对象,并将需要定时执行的功能作为参数传递给TimerTask的构造方法。例如...

  •  翡希信息咨询 如何实现定时任务- Java Timer/TimerTask 源码解析

    Java的Timer是一个方便实用且稳定的工具类,通过简单的API调用即可实现定时任务。其内部实现基于线程循环和优先队列,为我们设计相关的系统提供了启发。无论是实现简单的异步逻辑还是构建复杂的任务系统,Timer都是一个不错的选择。

  •  文暄生活科普 如何实现定时任务- Java Timer/TimerTask 源码解析

    Java的Timer广泛被用于实现异步任务系统,在一些开源项目中也很常见, 例如消息队列RocketMQ的 延时消息/消费重试 中的异步逻辑。上面这段代码是RocketMQ的延时消息投递任务 ScheduleMessageService 的核心逻辑,就是使用了Timer实现的异步定时任务。不管是实现简单的异步逻辑,还是构建复杂的任务系统,Java的Time...

  •  翡希信息咨询 Java实现定时器的几种方法

    1. 使用Timer和TimerTask类 Timer和TimerTask简介:Timer和TimerTask是Java.util包下的类,专门用于实现定时任务。实现步骤:创建TimerTask定时器任务,通常通过匿名内部类的方式。创建Timer定时器,并调用其方法执行TimerTask任务。Timer的主要方法:schedule:在指定时间后执行一次任务,delay单位为毫秒。schedul...

  •  安徽新华电脑专修学院 Java 定时任务的几种实现方式总结

    实现一、使用Thread等待的方式 public static class TimerThread extends Thread{ Override public void run() { super.run();while (true){ doSomething();try { Thread.sleep(5000);} catch (InterruptedException e) { e.printStackTrace();} } } private void doSomething() { } } 实现二...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部