一下文字摘自JDK1.6帮助文档:
public interface ScheduledExecutorService
一个 ExecutorService
,可安排在给定的延迟后运行或定期执行的命令。
schedule 方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务对象。scheduleAtFixedRate 和 scheduleWithFixedDelay 方法创建并执行某些在取消前一直定期运行的任务。
用 Executor.execute(java.lang.Runnable)
和 ExecutorService
的 submit 方法所提交的命令,通过所请求的 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 自带的定时器(`java.util.Timer` 类)是一种强大的工具,允许开发者安排任务在后台线程中按特定时间或周期性地执行。它为应用程序提供了灵活的调度功能,比如延迟执行、周期性执行等。下面我们将深入探讨 `...
本文将详细介绍如何利用JDK自带的算法实现AES加解密,并结合Base64编解码进行数据处理。 首先,AES是一种分组密码,它以128位为一个数据块进行加密,支持128、192和256位的密钥长度。在JDK中,AES加解密的核心类...
ThreadPoolExecutor 是 JDK 自带线程池的核心类,提供了线程池的管理和执行功能。该类提供了多种方法来创建和管理线程池,例如固定大小的线程池、单线程的线程池和计划线程池等。 创建线程池 创建线程池有多种方法...
首先,我们来看JDK自带的定时器——`java.util.Timer`类。这是一个线程安全的类,用于调度周期性任务。使用JDK定时器的基本步骤包括创建`Timer`对象,然后使用`schedule(TimerTask task, long delay)`或`schedule...
Spring框架提供了一套强大的定时任务解决方案,而JDK自带的`TimerTask`类则是实现定时任务的基础工具。本文将深入探讨如何在Spring框架中结合JDK的`TimerTask`来创建和管理定时任务。 ### Spring定时任务简介 ...
JDK(Java Development Kit)自带了一个基础的日志框架,名为`java.util.logging`,它提供了灵活的日志处理机制。本篇将深入探讨如何利用JDK自带的日志包进行简单的日志应用。 首先,`java.util.logging.Logger`是...
Java开发工具包(JDK)中的`Timer`类是一个实用工具类,用于调度周期性或一次性任务。在Java编程中,我们经常需要执行一些任务,这些任务需要在特定的时间点或者按照一定的间隔重复执行,例如更新进度条、心跳检测、...
本篇将详细介绍如何使用JDK自带的`jar`工具来创建JAR包,这是一项基础但至关重要的技能。 一、`jar`工具简介 `jar`是Java Development Kit (JDK) 自带的一个命令行工具,用于创建、更新和提取JAR文件。它支持...
jdk自带的线程池可以通过Executors工厂类来创建,Executors工厂类提供了多种创建线程池的方法,下面我们来看下使用示例: 1. newFixedThreadPool(固定大小的线程池) 使用newFixedThreadPool方法可以创建一个固定...
6. `jsadebugd`:服务端代理调试守护进程,主要在JDK的调试和服务性功能中发挥作用,允许远程调试和诊断。 以上工具的使用通常需要与相应的帮助文档配合,如`java.chm`可能包含了JDK的综合帮助文档,而`jstat - ...
### JConsole:JDK 自带的监控工具 #### 一、简介 JConsole是一款由Sun Microsystems(现已被Oracle收购)开发并集成于JDK 1.5及以上版本中的图形化监控工具。它能够帮助开发者及运维人员监测和诊断运行中的Java...
我们使用 `Endpoint.publish` 方法来发布服务,并传入服务类的实例和服务地址。 在发布服务之前,我们需要使用 `wsgen` 命令生成服务类的支持类。这个命令将生成几个 Java 文件和 class 文件,我们可以使用这些文件...
Java中的JDK定时器是基于`java.util.Timer`和`java.util.TimerTask`这两个类实现的,它们提供了在特定时间点或周期性地执行任务的能力。`Timer`类是一个抽象的基类,它负责调度任务的执行,而`TimerTask`则是一个...
如何更换Eclipse项目中的JDK自带jre图解。有很多java初学者导别人的项目时,常常会遇到项目报红,这是因为jdk位置发生了改变。除非你的jdk位置跟创建这个项目的人的位置一致。这个文档就是解决更换jdk,换成自己的jdk...
Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。
本篇文章将详细探讨如何使用JDK自带的方法解析XML特定格式的字符串。 首先,我们需要了解JDK中处理XML的主要API,包括`javax.xml.parsers`包下的`DocumentBuilderFactory`和`DocumentBuilder`,以及`org.w3c.dom`包...
在IT领域,JSON广泛用于服务器与客户端之间的数据通信,尤其是在Web服务和移动应用中。标题提到的"jdk1.4 json包 6个全"指的是为Java 1.4版本提供的一个完整的JSON处理库,包含了六个相关的jar文件。 1. **commons-...
最稳定版jdk及安装方法(jdk-8u60)自带环境变量配套配置说明,最稳定版jdk及安装方法(jdk_8u60),这是最稳定的JDK安装版本,使用于win7,win8,win10,win11.里面自带环境变量配置说明,最稳定版jdk及安装方法(jdk_8u60)...
CPU占用过高问题排查,java应用某台机器cpu比较高的情况,而且重启后基本上都会恢复正常。
**标题:“JDK自带工具”** 在Java开发中,JDK(Java Development Kit)不仅仅提供了运行Java程序所需的JRE(Java Runtime Environment),还内置了一系列强大的工具,这些工具对于开发者进行程序调试、性能优化、...