ScheduledExecutorService
- schedule(task,initDelay):安排所提交的Callable或Runnable任务在initDelay指定的时间后执行。
- scheduleAtFixedRate():安排所提交的Runnable任务按指定的间隔重复执行
- scheduleWithFixedDelay():安排所提交的Runnable任务在每次执行完后,等待delay所指定的时间后重复执行。
代码:ScheduleExecutorService的例子
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;public class ScheduledExecutorServiceTest
{
public static void main(String[] args) throws InterruptedException,ExecutionException
{
//*1
ScheduledExecutorService service=Executors.newScheduledThreadPool(2);
//*2
Runnable task1=new Runnable()
{
public void run()
{
System.out.println("Taskrepeating.");
}
};
//*3
final ScheduledFuture future1=service.scheduleAtFixedRate(task1,0,1,TimeUnit.SECONDS);
//*4
ScheduledFuture future2=service.schedule(new Callable()
{
public String call()
{
future1.cancel(true);
return "taskcancelled!";
}
},10,TimeUnit.SECONDS);
System.out.println(future2.get());
//*5
service.shutdown();
}
}这个例子有两个任务,第一个任务每隔一秒打印一句“Taskrepeating”,第二个任务在5秒钟后取消第一个任务。
*1:初始化一个ScheduledExecutorService对象,这个对象的线程池大小为2。*2:用内函数的方式定义了一个Runnable任务。*3:调用所定义的ScheduledExecutorService对象来执行任务,任务每秒执行一次。能重复执行的任务一定是 Runnable类型。注意我们可以用TimeUnit来制定时间单位,这也是Java5.0里新的特征,5.0以前的记时单位是微秒,现在可精确到奈秒。*4:调用ScheduledExecutorService对象来执行第二个任务,第二个任务所作的就是在5秒钟后取消第一个任务。*5:关闭服务。
ScheduledExecutorService相关推荐
- scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了
scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了 原因 If any execution of the task encounters an ...
- Timer的缺陷 用ScheduledExecutorService替代
GIT: https://github.com/whtchl/JavaConcurrentTemplate 继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说 ...
- JDK5.0 特性-线程任务执行架构 ScheduledExecutorService
来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291469.html 1 import java.util.concurrent.Callab ...
- java一段时间后执行一块代码_java自带的ScheduledExecutorService定时任务正常执行一段时间后部分任务不执行...
目前我有用java自带的ScheduledExecutorService线程任务做定时调度功能,我开启了足够多的线程数,比如开了300,实际上用到的只有50个. 我用的是newScheduledThr ...
- JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理...
本文记录: 1,使用ScheduledExecutorService的 scheduleAtFixedRate 方法执行周期性任务的过程,讨论了在任务周期执行过程中出现了异常,会导致周期任务失败. 2 ...
- java time 周期性执行,详解ScheduledExecutorService的周期性执行方法
详解 ScheduledExecutorService 的周期性执行方法 在最近的工作中,需要实现一个当一个任务执行完后,再等 100 毫秒然后再次执行的功能.当时最先反映到的就是 java 线程池的 ...
- scheduledexecutorservice 的使用_使用J.U.C实现定时任务
第一种:使用Executors.newScheduledThreadPool实现定时任务 这种实现方式是阿里规范不推荐的使用方式,有资源耗尽的风险 import java.util.concurren ...
- java高级----Thread之ScheduledExecutorService的使用
ScheduledExecutorService的主要作用就是可以将定时任务与线程池功能结合使用.今天我们来学习一下ScheduledExecutorService的用法.我们都太渺小了,那么容易便湮 ...
- 详解ScheduledExecutorService的周期性执行方法
2019独角兽企业重金招聘Python工程师标准>>> 详解 ScheduledExecutorService 的周期性执行方法 在最近的工作中,需要实现一个当一个任务执行完后,再等 ...
最新文章
- Java标识符首字母可以是哪些_Java编程中你不知道的一些标识符有哪些呢?
- matlab中repmat的用法,Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环...
- Makefile文件的编写规则
- 基本包装类和System类
- VMware 下安装centos7,无法进入图形化界面
- ubuntu adduser
- windows电脑借助多开软件实现ZALO程序多开
- 毕向东java ppt下载_毕向东Java基础ppt课件
- Autodesk AutoCAD 2018 for mac
- 计算方法(数值分析)实验:勒让德多项式求展开的三次平方逼近多项式代码实现 java
- 【原创】 ES5高效封装WIN10系统教程2020系列(四)使用工具优化与清理
- 2、如何搭建百度离线地图服务
- Timer源代码分析
- 男人最碰不得的十大危险女人
- PC端微信dat还原工具源码分享【福利】
- 基于JAVA宠物托管系统计算机毕业设计源码+系统+lw文档+部署
- tf.name_scope与tf.variable_scope用法区别
- matlab左侧显示当前文件夹,matlab还原默认布局,matlab左侧显示
- (转)DHTML学习笔记
- Linux中的log介绍(一)---概述
热门文章
- mate30pro 优化 开发者选项_10 个开发者必知的 MySQL 8.0 新功能
- lorawan的工作原理_LoRaWAN协议的工作原理是怎样的
- mysql 雇员表脚本,mysql压力测试脚本实例_MySQL
- win 二进制门安装mysql_windows安装mysql2 gem(包括windows 7 64位)
- matlab求解多项式系数,C++和MATLAB混合编程求解多项式系数(矩阵相除)
- Jam's balance HDU - 5616 (01背包基础题)
- 【题解】【洛谷 P1967】 货车运输
- win10 uwp unix timestamp 时间戳 转 DateTime
- 一次基于Vue.Js的用户体验优化 (vue drag)
- c#中将HTML文件转换成PDF文件