当前位置: 首页 > news >正文

销售做网站成都建设工程交易中心网站

销售做网站,成都建设工程交易中心网站,网页设计多少钱一个页面,seminar什么意思中文ScheduledThreadPoolExecutor 是在线程池的基础上 拓展的定时功能的线程池,主要有四种方式,具体可以看代码, 这里主要描述下 scheduleAtFixedRate : 除了第一次执行的时间,后面任务执行的时间 为 time MAX(任务执行时…

ScheduledThreadPoolExecutor 是在线程池的基础上 拓展的定时功能的线程池,主要有四种方式,具体可以看代码,
这里主要描述下

  • scheduleAtFixedRate : 除了第一次执行的时间,后面任务执行的时间 为 time = MAX(任务执行时间,每次等待时间) 取最大值
  • scheduleWithFixedDelay:除了第一次执行的时间,后面任务的时间为 任务执行时间+每次等待时间。
    在这里插入图片描述

使用案例

		// 创建一个定时任务线程池ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);// 延迟1S后执行executor.schedule(() -> {}, 1000, TimeUnit.MILLISECONDS);// 立马执行executor.execute(() -> {System.out.println("execute");});// 第一次延迟1S,之后每3S执行一次,如果任务时间超过3S,那么等任务执行后执行下一次任务executor.scheduleAtFixedRate(() -> {try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println("at"+new Date());}, 1000, 3000, TimeUnit.MILLISECONDS);// 第一次延迟1S执行。任务执行完成后+3S 执行下一次任务executor.scheduleWithFixedDelay(() -> {try {TimeUnit.SECONDS.sleep(5);System.out.println("with"+new Date());} catch (InterruptedException e) {throw new RuntimeException(e);}},1000, 3000, TimeUnit.MILLISECONDS);

源码解析

其实主要就是把握ScheduledFutureTask 和 线程池的核心流程的类就可以。

ScheduledFutureTask

在这里插入图片描述
在这里插入图片描述

DelayedWorkQueue

本质是一个二叉树形式的堆结构,会将邻近执行时间的任务排在前面。

schedule 方法分析

整体的流程其实就是 封装定时任务,然后触发延迟执行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

delayedExecute

在这里插入图片描述
在这里插入图片描述

ScheduledFutureTask.run方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

流程图

这里来简单描述下整体的流程
1.先将任务封装成一个任务 ScheduledFutureTask, 根据线程池状态判断是否执行或者删除任务
2.将任务添加到延迟队列中
3.根据线程池配置 看是否创建线程执行任务。
4.运行的线程不断从延迟队列中获取任务执行。

其实本质就是利用线程池复用机制 + 延迟队列 实现定时任务。

在这里插入图片描述

总结

ScheduledThreadPoolExecutor和ThreadPoolExecutor的区别:

  • ThreadPoolExecutor每次addwoker就会将自己的Task传进新创建的woker中的线程执行,因此woker会第一时间执行当前Task,只有线程数超过了核心线程才会将任务放进队列里
  • ScheduledThreadPoolExecutor是直接入队列,并且创建woker时传到woker的是null,说明woker中的线程刚启动时并没有任务执行,只能通过getTask去队列里取任务,取任务时会判断是否到了执行时间,因此具有了延时执行的特性,并且task执行完了,会将当前任务重新放进堆里,并设置下次执行的时间。
http://www.yayakq.cn/news/792523/

相关文章:

  • 门户网站项目开发案例网络营销外包的优点
  • 阿里云可以做电影网站wordpress伪静态设置
  • 设计联盟网络seo优化
  • 珠海seo网站建设alexa排名查询统计
  • 网站建设设计ppt安徽省建设工程信息网站6
  • 外贸网站教程如何创建一个自己的博客
  • 建设环境工程技术中心网站门户网站推广方式
  • 百度提交网站wordpress如何修改后台网址
  • c 网站开发视频教程 高清微信管理
  • 网站开发找什么论文请网络推广外包公司有用吗
  • 张家港外贸网站建设wordpress文章缓存清理
  • 做公众号首图网站住房建设官方网站
  • 昌平做网站公司江都建设上海公司网站
  • 清远网站制作百度怎么推广广告
  • 做网站优化最快的方式网站上不去的原因
  • 外链收录网站室内设计师经常用的网站
  • js网站访问计数宜昌网站制作公司亿腾
  • 网站宽度 像素做淘客网站用什么服务器好
  • 建设银行天津分行门户网站青岛建设交易中心网站首页
  • 建站平台备案18款禁用网站app入口
  • 十大房产网站排行榜建设彩票网站犯法吗
  • 网站域名查询官网门户网站的建设要求
  • 威海市文登区城乡建设局网站使用三剑客做网站
  • 网站开发外包项目网站网站建设灬金手指科杰
  • 电商类网站有哪些网站开发成本
  • 福田做网站公司百度快照比网站上线时间早
  • 家居网站建设的需求分析漫画网站源码
  • 做建材的网站旅游网站自己怎么做
  • fomo3d 网站怎么做vue做网站的好处是什么
  • 网站建设技术标书黑马培训价目表