它继承自ExecutorService接口。顾名思义,它主要用来定期执行任务或周期执行任务。它只有4个方法,都比较好理解。下面用最简单的例子来做个说明
scheduler.schedule(callable,10,SECONDS); //10秒后开始执行callable任务
scheduler.schedule(runnable,10,Seconds); //10秒后开始执行runnable任务
scheduler.scheduleAtFixedRate(runnable, 5, 10, SECONDS); //5秒后开始执行Runnable任务,然后每隔10秒执行一遍该任务.
scheduler.scheduleWithFixedDelay(runnable,5,10,SECONDS); //5秒后开始执行Runnable任务,然后任务执行完后再等10秒就执行一遍任务,即,每隔任务执行的时间+10秒再执行一遍任务。
这4个方法都返回ScheduledFuture对象.它继承自Future接口,用途和Future差不多。
在JDK之前,计划任务一般由java.until.Timer类来完成。但相比起 ScheduleExecutorService来说,Timer类的功能较为简单,比如下例
private final static long fONCE_PER_DAY = 1000*60*60*24;
Timer timer = new Timer();
timer.scheduleAtFixedRate(fetchMail, getTomorrowMorning4am(), fONCE_PER_DAY);
- Timer没有返对象(我总理解为一种句柄),不方便细粒度控制任务。
- Timer的任务类型比较单一,只有TimerTask一种。
- 没有类似scheduleWithFixedDelay的方法。
- 间隔时间的表示方法也不友好。
- 性能上也不如ScheduledExecutorService(通过线程池等方式进行了性能优化)出色。
相关推荐
Concurrent下的例子,涵盖了大部分常用类 例如BlockingQueue、CountDownLatch、CyclicBarrier、Exchanger、ExecuteService、lock、timeutil等
这些模式是解决并发问题的常用方法,通过学习可以提升代码的可维护性和性能。 "j-concur.zip" 文件可能包含了一些示例代码或者补充资料,用于演示和实践Java并发编程的技巧。这些示例通常会涵盖各种并发控制机制,...
Java 5并发包(`java.util.concurrent`,简称`Concurrent`包)是Java平台中用于多线程编程的重要组成部分,它提供了丰富的并发工具类,极大地简化了在多线程环境下的编程工作。这个包的设计目标是提高并发性能,减少...
为了简化多线程编程,Java提供了一系列工具和API,如`java.util.Timer`和`java.util.concurrent`包,这些工具可以帮助开发者更高效地管理线程间的同步问题。 ##### 1.2 synchronized关键字 `synchronized`关键字是...
### Java的Concurrent包用法详解 #### 一、引言 在Java 1.5之前,为了实现多线程的并发操作,开发者通常需要手动编写复杂的代码来处理线程间的同步问题,如使用`synchronized`关键字、`wait()`与`notify()`方法等。...
在并发编程领域,Java标准库提供了java.util.concurrent包,包含了许多高级并发工具,如ExecutorService、Future、Callable等。此外,Quasar是一个异步编程库,它引入了纤程(fibers)的概念,可以提高多线程应用的...
5. **并发与线程**:`concurrent`包提供了高级并发工具,`lombok`简化了JavaBean的创建,自动处理getter、setter等。 6. **测试工具**:`junit`是单元测试的基石,`mockito`用于模拟对象,`selenium`支持自动化...
除了Scala本身提供的并发支持外,书中还会介绍一些常用的并发编程工具和框架,比如Akka框架,它是基于Actor模型的开源工具包,广泛应用于构建高度并发、分布式和容错的系统。 #### 六、并发性能优化技巧 本书还...
9. `java.concurrent`:并发编程包,提供了线程池、并发集合、同步工具类等,如 `ExecutorService`、`Future`、`Semaphore`、`CyclicBarrier`,帮助开发者更安全地进行多线程编程。 10. `java.text`:处理文本格式...
虽然这个文档不全面,但涵盖了日常开发中常用的类型,对于理解和使用Java语言具有极大的帮助。 在Java JDK API中,我们可以找到以下主要的包和类: 1. **java.lang**:这是Java程序的基础包,包含了所有Java程序...
本话题将重点介绍两个常用的`jar`包——`concurrent-1.3.2.jar`和`connector.jar`,以及它们所涉及的核心知识点。 `concurrent-1.3.2.jar`是Java并发编程领域的一个重要组件,它包含了Java并发库的一部分早期实现。...
本书《Concurrent Programming in Java - Design Principles and Patterns (Second Edition)》深入探讨了在Java编程语言中进行并发编程的方法、设计理念及其实现技巧。它假设读者已经具备面向对象编程的经验,但对于...
- `concurrent.jar`: 包含了Java并发处理的类库,如`java.util.concurrent`包下的工具类。 13. **图形用户界面JAR** - `swing.jar`: Java Swing库提供了丰富的组件,用于构建桌面应用程序的用户界面。 以上只是...
Java.util.concurrent(JUC)是Java平台中的一个核心包,专门用于处理多线程并发问题。这个包包含了大量的工具类和接口,极大地简化了并发编程的复杂性,提高了程序的性能和可伸缩性。本测试源文件主要是针对JUC并发...
Java并发工具包(java.util.concurrent)是Java编程中不可或缺的一部分,它为多线程环境提供了高效、安全且易用的工具。这个包包含了各种类和接口,帮助开发者编写高效的并发程序,避免了直接操作线程所带来的复杂性...
"常用jar包大全"这个资源集合提供了69个常用的JAR文件,旨在帮助开发者快速获取并使用这些常用的库,避免在项目开发中花费大量时间去寻找和集成。 1. **JAR文件的基础知识** - JAR文件是Java平台特有的归档格式,...