- Java并发是什么?
- Java并发开发环境配置
- Java并发主要操作
- Java并发线程间通信
- Java并发同步
- Java并发死锁
- 实用类实例
- 锁示例
- 原子变量示例
- 执行者示例
- 线程池示例
- 高级示例
- 并发集合
Java并发ScheduledExecutorService接口
java.util.concurrent.ScheduledExecutorService
接口是ExecutorService
接口的子接口,并支持将来和/或定期执行任务。
ScheduledExecutorService接口的方法
序号 | 方法 | 描述 |
---|---|---|
1 | ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) |
创建并执行在给定延迟后启用ScheduledFuture 。 |
2 | ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) |
创建并执行在给定延迟后启用的单次操作。 |
3 | ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) |
创建并执行在给定的初始延迟之后,随后以给定的时间段首先启用的周期性动作; 那就是执行会在initialDelay 之后开始,然后是initialDelay + period ,然后是initialDelay + 2 * period ,等等。 |
4 | ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) |
创建并执行在给定的初始延迟之后首先启用的定期动作,随后在一个执行的终止和下一个执行的开始之间给定的延迟。 |
实例
以下TestThread
程序显示了基于线程的环境中ScheduledExecutorService
接口的使用。
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; public class TestThread { public static void main(final String[] arguments) throws InterruptedException { final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); final ScheduledFuture<?> beepHandler = scheduler.scheduleAtFixedRate(new BeepTask(), 2, 2, TimeUnit.SECONDS); scheduler.schedule(new Runnable() { @Override public void run() { beepHandler.cancel(true); scheduler.shutdown(); } }, 10, TimeUnit.SECONDS); } static class BeepTask implements Runnable { public void run() { System.out.println("beep"); } } }
这将产生以下结果 -
beep beep beep beep beep
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王