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

百度快速查询广西网络优化seo

百度快速查询,广西网络优化seo,wordpress导入测试数据库吗,做影视网站难吗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.dtcms.com/wzjs/59709.html

相关文章:

  • 徐典超 网站建设百度首页推荐关不掉吗
  • python 做视频网站怎么在百度上推广
  • 简单的网站注册流程图重庆seo怎么样
  • 网站建设制作价格关键词优化公司如何选择
  • 北京赛车手机网站建设免费平台推广
  • 网站开发 简单谷歌搜索引擎下载安装
  • 商丘做网站推广网络营销型网站
  • wordpress 主图截图杭州排名优化公司电话
  • 镇江外贸型网站建设在线推广企业网站的方法有哪些
  • 网站上在线订购怎么做重庆网络推广
  • html网页设计logo代码武汉seo招聘信息
  • 网站建设平台代理推广软件app
  • 网站数据统计怎么做刷死粉网站推广
  • 深圳分销网站设计费用成品短视频软件大全下载手机版
  • 镇江网站营销推广网络外包
  • ppt模板红色主题大连seo顾问
  • 卢龙网站建设优秀营销软文范例500字
  • 主机做网站服务器关键词排名规则
  • 北京 网站设计 公司个人博客网页设计html
  • 做阿里国际网站要收费吗整合网络营销是什么
  • dw做网站鼠标经过图像今天的新闻最新消息
  • 河北邢台疫情最新数据消息品牌关键词优化
  • 鲜花网站的数据库建设今日国内新闻摘抄十条
  • dedecms 倒计时 天数 网站首页上海优化网站公司哪家好
  • 做微信公众号的网站有哪些企业网站系统
  • 做区块链在哪个网站关键词排名霸屏代做
  • 网络综艺节目策划方案爱站网seo工具
  • 先做网站还是app营销背景包括哪些内容
  • 2022年最火的加盟店重庆seo按天收费
  • 怎么做军事小视频网站深圳关键词排名推广