java.util.concurrent.ScheduledExecutorService#scheduleAtFixedRate

参考文档:

https://segmentfault.com/a/1190000015190796

可以看下下面的例子。

    @Testpublic void testFixedRate(){ScheduledExecutorService scheduledThreadPool = null;try {scheduledThreadPool = Executors.newScheduledThreadPool(4);SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");System.out.println("submit a callable task to threadpool, current time:" + sdf.format(new Date()));ScheduledFuture<?> scheduledFuture = scheduledThreadPool.scheduleAtFixedRate(() -> {System.out.println(Thread.currentThread().getName() + " | start to execute task, current time :" + sdf.format(new Date()));try {Random random = new Random();int i = random.nextInt(7);System.out.println("current i="+i);TimeUnit.SECONDS.sleep(i);} catch (InterruptedException e) {e.printStackTrace();}}, 2L, 3L, TimeUnit.SECONDS);TimeUnit.SECONDS.sleep(200L);} catch (InterruptedException e) {e.printStackTrace();} finally {if (scheduledThreadPool != null) {System.out.println("close the schedule threadpool!");scheduledThreadPool.shutdown();}}}

如下是执行的结果

submit a callable task to threadpool, current time:20:03:07
pool-1-thread-1 | start to execute task, current time :20:03:09
current i=4
pool-1-thread-1 | start to execute task, current time :20:03:13
current i=5
pool-1-thread-2 | start to execute task, current time :20:03:18
current i=1
pool-1-thread-1 | start to execute task, current time :20:03:19
current i=4
pool-1-thread-1 | start to execute task, current time :20:03:23
current i=4
pool-1-thread-1 | start to execute task, current time :20:03:27
current i=2
pool-1-thread-1 | start to execute task, current time :20:03:29
current i=1
pool-1-thread-1 | start to execute task, current time :20:03:30
current i=3
pool-1-thread-1 | start to execute task, current time :20:03:33
current i=3
pool-1-thread-4 | start to execute task, current time :20:03:36
current i=0
pool-1-thread-4 | start to execute task, current time :20:03:39
current i=6

ScheduledExecutorService的scheduleAtFixedRate分析相关推荐

  1. ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别

    ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别 ScheduledThreadPoolExecut ...

  2. JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理...

    本文记录: 1,使用ScheduledExecutorService的 scheduleAtFixedRate 方法执行周期性任务的过程,讨论了在任务周期执行过程中出现了异常,会导致周期任务失败. 2 ...

  3. java 线程工厂_Java并发编程:Java的四种线程池的使用,以及自定义线程工厂

    引言 通过前面的文章,我们学习了Executor框架中的核心类ThreadPoolExecutor ,对于线程池的核心调度机制有了一定的了解,并且成功使用ThreadPoolExecutor 创建了线 ...

  4. java定时器与ThreadLocal编程陷阱

    2019独角兽企业重金招聘Python工程师标准>>> 定时器 1 问题描述 1) 与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务.计时器任务应该迅速完 ...

  5. java后端研发经典面试题总结二

    四种读取XML文件读取的办法 1.DOM生成和解析XML文档 为XML文档的已解析版本定义了一组接口.解析器读入整个文档,然后构建一个驻留内存的树结构. 优点:整个文档树在内存中,便于操作:支持删除, ...

  6. java后端研发经典面试题总结,为公司招兵买马

    垃圾回收算法 1.标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和清 ...

  7. java后端研发经典面试题总结

    垃圾回收算法 1.标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和清 ...

  8. Java多线程之线程池的使用示例

    2019独角兽企业重金招聘Python工程师标准>>> 第一种:创建一个定长的线程池,控制线程最大并发数,超出的会在队列中等待. TestThreadPool.java import ...

  9. [Java]如何安排任务间隔运行

    应用程序中经常需要在后台运行某些特定任务以在一定间隔内完成某些工作. 该示例可以是,服务在后台运行以清理应用程序,就像我们有Java Garbage集合一样. 在本文中,我将向您展示3种不同的方法来实 ...

最新文章

  1. Atomic Layer Deposition原子层沉积技术
  2. 淘宝API商家自用型应用程序全部源代码和详细的帮助文档(1元有偿提供)
  3. INSERT IGNORE 与INSERT INTO的区别
  4. SDN控制器是这样工作的
  5. Win7下配置Apache+PHP+Mysql环境
  6. 信息系统项目管理师-常用技术标准考点笔记
  7. Scatec Solar拟在乌克兰建设60MW光伏电站
  8. Javascript 解析,格式化日期
  9. 快讯:Oracle 19c 新特性及官方文档抢鲜下载
  10. MATLAB学习笔记(十)
  11. 【任玉刚】给Android程序员的一些面试建议
  12. wince 百度地图懒人包_百度导航车载wince版|百度地图winCE版 V10.9.2 安卓版 下载_当下软件园_软件下载...
  13. 怎么启用对远程服务器的访问,未启用对服务器的远程访问怎么办
  14. QC —什么是量子计算机?
  15. 怎么样把pdf压缩到最小
  16. matlab某种水泥在凝固,Matlab实现多元回归实例
  17. 为什么要用花焊盘?全连接和花连接有什么区别?梅花焊盘和泪滴焊盘各有什么作用?
  18. form表单提交,action需要加项目名
  19. VC++ 文件读写总结
  20. 是谁谋杀了中国的民营企业?

热门文章

  1. Redis:缓存(双写)一致性问题
  2. 如何保持mysql和redis中数据的一致性?
  3. maven安装和配置阿里云镜像(各种详细配置)
  4. Jenkins定时构建时间设置
  5. Windows2008R2 多用户同时远程登录服务器
  6. uniapp掘墓者之IOS时间格式
  7. Web应用的测试内容
  8. mysql 更改建表语句_MySql:如何通过Sql语句创建表,更改表?,这几步你要了解...
  9. [原创][从mambo到joomla的迁移实战之三]网站由mambo迁移到joomla(未完待续)
  10. 数据中台总领数字化转型?明略科技提出不一样的方法论