- 浏览: 7155602 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
ScheduledExecutorService
作者:赵磊
博客:http://elf8848.iteye.com
java.util.concurrent.Executors可创建一个线程池,它可给定延迟后定期地执行任务。
Executors.newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)
其中的scheduleAtFixedRate 和 scheduleWithFixedDelay 方法可以创建并执行任务,这些任务一直执行 ,并且是可以取消的任务。
import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.SimpleFormatter; /** * ScheduledExecutorService 测试 * * @author zhaolei 2012-5-23 */ public class ScheduledThreadPoolTest { private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); static SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd dd:mm:ss"); /** * beepForTime */ public static void beepForTime() { /** * 要执行的任务 */ final Runnable beeper = new Runnable() { int i=0; public void run() { System.out.println("beep:"+(i++)+"----"+sf.format(new Date(System.currentTimeMillis()))); //throw new RuntimeException(); //任务耗时2秒 try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } }; int startTime=3; int each=5; System.out.println("任务将于"+startTime+"秒后开始,每"+each+"秒执行1次"); /** * 每each秒执行一次任务,两次任务的执行间隔是each秒(前面定义的变更) * * * 创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期; * 也就是将在 initialDelay 后开始执行,然后在 initialDelay+period 后执行, * 接着在 initialDelay + 2 * period 后执行,依此类推。如果任务的任何一个执行遇到异常, * 则后续执行都会被取消。否则,只能通过执行程序的取消或终止方法来终止该任务。 * 如果此任务的任何一个执行要花费比其周期更长的时间,则将推迟后续执行,但不会同时执行。 * 参数: * command - 要执行的任务 * initialDelay - 首次执行的延迟时间 * period - 连续执行之间的周期 * unit - initialDelay 和 period 参数的时间单位 * */ //final ScheduledFuture<?> beeperHandle = scheduler.scheduleAtFixedRate(beeper, startTime, each, TimeUnit.SECONDS); /** * * 每each秒执行一次任务,两次任务的执行间隔是each秒(前面定义的变更)+任务执行用时 * * 创建并执行一个在给定初始延迟后首次启用的定期操作, * 随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。 * 如果任务的任一执行遇到异常,就会取消后续执行。 * 否则,只能通过执行程序的取消或终止方法来终止该任务。 * 参数: * command - 要执行的任务 * initialDelay - 首次执行的延迟时间 * period - 连续执行之间的周期 * unit - initialDelay 和 period 参数的时间单位 * */ final ScheduledFuture<?> beeperHandle = scheduler.scheduleWithFixedDelay(beeper, startTime, each, TimeUnit.SECONDS); /** * 创建并执行在给定延迟后启用的一次性操作。 * * 这里用于在N时间后取消任务 */ scheduler.schedule(new Runnable() { public void run() { System.out.println("取消任务"); beeperHandle.cancel(true); } }, 60, TimeUnit.SECONDS); } /** * main * * @param args */ public static void main(String[] args) { beepForTime(); } }
发表评论
-
在浏览器中解析Base64编码图像
2014-05-25 17:25 7945上一篇介绍中,我们将二进制文件(BLOB)保存为Base64 ... -
细说Java IO相关
2014-05-25 13:48 4769细说Java IO相关 概述 在大部分的行业系统或 ... -
Java IO 的类图
2014-05-25 13:43 2022Java IO 的类图 拿出来方便大家。Java IO表 ... -
Java IO流学习总结
2014-05-25 13:35 3403Java流操作有关的类或 ... -
JAVA多线程和并发基础面试问答
2014-05-17 23:58 3878原文链接 译文连接 ... -
Java开发字符界面程序
2014-01-14 15:27 2673做银行、保险等行业,需要开发柜面系统,使用unix终端进行 ... -
JVM 优秀文章
2013-11-29 11:16 2096JVM垃圾收集器使用调查:CMS最受欢迎 http:// ... -
Java写的数据库连接池
2013-10-19 22:42 0Java写的数据库连接池 impo ... -
Web应用程序中线程的启动和关闭问题
2013-09-12 18:49 3378我们知道静态变量是ClassLoader级别的,如果Web ... -
Java线程池知识
2013-04-08 10:39 26171. 引言合理利用线程池能够带来好处。第一:降低资源消耗。通 ... -
子类可以继承到父类上的注解吗--有结论了
2012-08-04 23:51 57433作者:赵磊 博客:http://elf8848.ite ... -
JDK 5 Annotation\注解\注释\自定义注解
2012-08-04 22:15 10855作者:赵磊 博客:ht ... -
Java Nio Buffer
2012-05-29 15:21 7060Buffer是特定基本类型元素的线性有限序列,它以及它的子类定 ... -
Java 高级知识
2012-05-18 18:34 15689Java 的一些高级知识你掌握了吗? 我最近在做一个网络通 ... -
字节序
2012-05-01 20:24 6728作者:赵磊 博客:http://elf8848.ite ... -
Java日志方案概述
2012-04-29 18:33 4890日志解决方案 ... -
Map的线程安全与否的相关文章
2010-05-20 22:09 3213为什么HashMap不是线程安全的?哪里不安全?不安全产生什 ... -
Map.Entry 类使用简介
2009-09-17 15:46 14598如何简便的遍历Map 你是否已经对每次从Map中取得关键字然 ... -
嵌套删除多级目录, 删除单级目录, 创建多级目录, 复制文件
2009-02-25 17:53 3426备一份自己用: /** * 嵌套删除多级目录 * ... -
截取中英文混合的字符串, 保留前面N个字符 ,抛弃被截断的汉字
2009-02-25 17:47 4955备一份自己用: /** * 截取中英文混合的字符串, 保留 ...
相关推荐
主要介绍了ScheduledExecutorService任务定时代码示例,具有一定借鉴价值,需要的朋友可以参考下
ScheduledExecutorService 计时器任务处理,用于超时处理。
工作中常常会有定时任务的开发需求,特别是移动端。最近笔者正好有所涉及,鉴于此,结合开发中的案例说明一下几种定时任务的 退出 。 需求说明 :定时更新正在生成的文件大小和状态【进行中、失败、完成】,如果...
Springmvc java注解设置定时任务实例,利用 ScheduledExecutorService 接口实现
定时器小例子,这是一个经较好定时器应用
1.普通thread实现 2.TimerTask实现 3.ScheduledExecutorService实现
您可以在工作线程上运行任务(Runnable或Callable),以指定执行计划(如ScheduledExecutorService),并指定执行时间。 介面 ScheduledFuture<?> schedule( Runnable command, int executeTime, long delay,...
这是一个jar,很秀。自定义的一个Java定时器工具类。主要是结合Spring Boot一起使用,并在Spring Boot启动的时候一起启动运行。
Java通用任务执行程序,基于java.util.concurrent.ScheduledExecutorService。 Java通用的任务执行器,基于java.util.concurrent.ScheduledExecutorService工具类实现。 Maven: <groupId>...
提高任务执行的响应速度, 任务执行时, 可以不必等线程创建完成之后在执行,可以直接获取线程执行任务. 提高线程的可管理性, 线程不能无限制的创建, 需要进行统一的分配, 调优和监控. 不适用线程池坏处: 频繁的线程...
下面小编就为大家带来一篇基于ScheduledExecutorService的两种方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
线程池执行者 ThreadPoolExecutor,定时执行者服务 ScheduledExecutorService, 使用 ForkJoinPool 进行分叉和合并,锁 Lock,读写锁 ReadWriteLock 原子性长整型 AtomicLong,原子性引用型 AtomicReference 修改数据:...
ScheduledExecutorService接口:提供了执行定时任务的能力 EventExecutorGroup接口:ExecutorService的分组接口 AbstractEventExecutorGroup:EventExecutorGroup接口的抽象实现类 MultithreadEventExecutorGroup:...
18. 定时执行者服务 ScheduledExecutorService 19. 使用 ForkJoinPool 进行分叉和合并 20. 锁 Lock 21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 ...
18. 定时执行者服务 ScheduledExecutorService 19. 使用 ForkJoinPool 进行分叉和合并 20. 锁 Lock 21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 ...
定时执行者服务 ScheduledExecutorService 19. 使用 ForkJoinPool 进行分叉和合并 20. 锁 Lock 21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 AtomicLong...
在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制 同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的...
串行执行器服务 ScheduledExecutorService 的测试实用程序实现 允许测试如下代码: class Foo { private int count = 0; public Foo(ScheduledExecutorService service, Bar bar) { service....
springMVC配置、注解、列子
18. 定时执行者服务 ScheduledExecutorService 19. 使用 ForkJoinPool 进行分叉和合并 20. 锁 Lock 21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 ...