`
hougechuanqi
  • 浏览: 73135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdk自带定时器服务类ScheduledExecutorService

 
阅读更多
一下文字摘自JDK1.6帮助文档:
 
public interface ScheduledExecutorService


extends ExecutorService

一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。

schedule 方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务对象。scheduleAtFixedRatescheduleWithFixedDelay 方法创建并执行某些在取消前一直定期运行的任务。

Executor.execute(java.lang.Runnable)ExecutorServicesubmit 方法所提交的命令,通过所请求的 0 延迟进行安排。schedule 方法中允许出现 0 和负数延迟(但不是周期),并将这些视为一种立即执行的请求。

所有的 schedule 方法都接受相对 延迟和周期作为参数,而不是绝对的时间或日期。将以 Date 所表示的绝对时间转换成要求的形式很容易。例如,要安排在某个以后的 Date 运行,可以使用:schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)。但是要注意,由于网络时间同步协议、时钟漂移或其他因素的存在,因此相对延迟的期满日期不必与启用任务的当前 Date 相符。 Executors 类为此包中所提供的 ScheduledExecutorService 实现提供了便捷的工厂方法。

用法示例

以下是一个带方法的类,它设置了 ScheduledExecutorService ,在 1 小时内每 10 秒钟蜂鸣一次:
 import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
    private final ScheduledExecutorService scheduler = 
       Executors.newScheduledThreadPool(1);

    public void beepForAnHour() {
        final Runnable beeper = new Runnable() {
                public void run() { System.out.println("beep"); }
            };
        final ScheduledFuture<?> beeperHandle = 
            scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
        scheduler.schedule(new Runnable() {
                public void run() { beeperHandle.cancel(true); }
            }, 60 * 60, SECONDS);
    }
 }
-------------------------------------------
这个类是java.util.concurrent 包下面1.5后新增的类,属于并发安全包下面的一个定时器服务类,极大方便了以后对定时任务的操作,并且是线程安全的。
分享到:
评论

相关推荐

    jdk自带定时器使用方法详解

    JDK 自带的定时器(`java.util.Timer` 类)是一种强大的工具,允许开发者安排任务在后台线程中按特定时间或周期性地执行。它为应用程序提供了灵活的调度功能,比如延迟执行、周期性执行等。下面我们将深入探讨 `...

    利用jdk自带算法实现的AES加解密

    本文将详细介绍如何利用JDK自带的算法实现AES加解密,并结合Base64编解码进行数据处理。 首先,AES是一种分组密码,它以128位为一个数据块进行加密,支持128、192和256位的密钥长度。在JDK中,AES加解密的核心类...

    JDK自带线程池分析

    ThreadPoolExecutor 是 JDK 自带线程池的核心类,提供了线程池的管理和执行功能。该类提供了多种方法来创建和管理线程池,例如固定大小的线程池、单线程的线程池和计划线程池等。 创建线程池 创建线程池有多种方法...

    spring+jdk定时器

    首先,我们来看JDK自带的定时器——`java.util.Timer`类。这是一个线程安全的类,用于调度周期性任务。使用JDK定时器的基本步骤包括创建`Timer`对象,然后使用`schedule(TimerTask task, long delay)`或`schedule...

    spring + jdk TimerTask定时器

    Spring框架提供了一套强大的定时任务解决方案,而JDK自带的`TimerTask`类则是实现定时任务的基础工具。本文将深入探讨如何在Spring框架中结合JDK的`TimerTask`来创建和管理定时任务。 ### Spring定时任务简介 ...

    JDK自带的日志包简单应用

    JDK(Java Development Kit)自带了一个基础的日志框架,名为`java.util.logging`,它提供了灵活的日志处理机制。本篇将深入探讨如何利用JDK自带的日志包进行简单的日志应用。 首先,`java.util.logging.Logger`是...

    Jdk的Timer 实现定时器

    Java开发工具包(JDK)中的`Timer`类是一个实用工具类,用于调度周期性或一次性任务。在Java编程中,我们经常需要执行一些任务,这些任务需要在特定的时间点或者按照一定的间隔重复执行,例如更新进度条、心跳检测、...

    使用jdk自带的jar工具打jar包

    本篇将详细介绍如何使用JDK自带的`jar`工具来创建JAR包,这是一项基础但至关重要的技能。 一、`jar`工具简介 `jar`是Java Development Kit (JDK) 自带的一个命令行工具,用于创建、更新和提取JAR文件。它支持...

    jdk自带线程池实例详解

    jdk自带的线程池可以通过Executors工厂类来创建,Executors工厂类提供了多种创建线程池的方法,下面我们来看下使用示例: 1. newFixedThreadPool(固定大小的线程池) 使用newFixedThreadPool方法可以创建一个固定...

    JDK自带调试工具doc

    6. `jsadebugd`:服务端代理调试守护进程,主要在JDK的调试和服务性功能中发挥作用,允许远程调试和诊断。 以上工具的使用通常需要与相应的帮助文档配合,如`java.chm`可能包含了JDK的综合帮助文档,而`jstat - ...

    Jconsole JDK自带的监控程序

    ### JConsole:JDK 自带的监控工具 #### 一、简介 JConsole是一款由Sun Microsystems(现已被Oracle收购)开发并集成于JDK 1.5及以上版本中的图形化监控工具。它能够帮助开发者及运维人员监测和诊断运行中的Java...

    jdk 6.0 自带webservice实现 实例

    我们使用 `Endpoint.publish` 方法来发布服务,并传入服务类的实例和服务地址。 在发布服务之前,我们需要使用 `wsgen` 命令生成服务类的支持类。这个命令将生成几个 Java 文件和 class 文件,我们可以使用这些文件...

    jdk定时器调度

    Java中的JDK定时器是基于`java.util.Timer`和`java.util.TimerTask`这两个类实现的,它们提供了在特定时间点或周期性地执行任务的能力。`Timer`类是一个抽象的基类,它负责调度任务的执行,而`TimerTask`则是一个...

    如何更换Eclipse项目中的JDK自带jre图解

    如何更换Eclipse项目中的JDK自带jre图解。有很多java初学者导别人的项目时,常常会遇到项目报红,这是因为jdk位置发生了改变。除非你的jdk位置跟创建这个项目的人的位置一致。这个文档就是解决更换jdk,换成自己的jdk...

    基于JDK自带的Web服务JAX-WS实现WebService的简单示例

    Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。

    JDK自带方法解析xml特定格式的字符串

    本篇文章将详细探讨如何使用JDK自带的方法解析XML特定格式的字符串。 首先,我们需要了解JDK中处理XML的主要API,包括`javax.xml.parsers`包下的`DocumentBuilderFactory`和`DocumentBuilder`,以及`org.w3c.dom`包...

    jdk1.4 json包 6个全

    在IT领域,JSON广泛用于服务器与客户端之间的数据通信,尤其是在Web服务和移动应用中。标题提到的"jdk1.4 json包 6个全"指的是为Java 1.4版本提供的一个完整的JSON处理库,包含了六个相关的jar文件。 1. **commons-...

    最稳定版jdk及安装方法(jdk-8u60)里面自带环境变量配置说明

    最稳定版jdk及安装方法(jdk-8u60)自带环境变量配套配置说明,最稳定版jdk及安装方法(jdk_8u60),这是最稳定的JDK安装版本,使用于win7,win8,win10,win11.里面自带环境变量配置说明,最稳定版jdk及安装方法(jdk_8u60)...

    jdk自带调试工具说明文档

    CPU占用过高问题排查,java应用某台机器cpu比较高的情况,而且重启后基本上都会恢复正常。

    jdk自带工具

    **标题:“JDK自带工具”** 在Java开发中,JDK(Java Development Kit)不仅仅提供了运行Java程序所需的JRE(Java Runtime Environment),还内置了一系列强大的工具,这些工具对于开发者进行程序调试、性能优化、...

Global site tag (gtag.js) - Google Analytics