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

html做高逼格网站百度竞价广告收费标准

html做高逼格网站,百度竞价广告收费标准,为什么wordpress邮件发不出去,成都品牌logo设计文章目录 题目要求解析题目总结发现补全SuperTask代码,实现逻辑完整代码和结果 题目要求 解析题目 我们先看看这道题目的规律,看到前两个,还是挺正常的,任务1 10s后输出,任务 2 5s后输出。 任务3 却是8s后输出&#xf…

文章目录

    • 题目要求
    • 解析题目
    • 总结发现
    • 补全SuperTask代码,实现逻辑
    • 完整代码和结果

题目要求

在这里插入图片描述

解析题目

我们先看看这道题目的规律,看到前两个,还是挺正常的,任务1 10s后输出,任务 2 5s后输出。
任务3 却是8s后输出,但明明传入的是3s,可结果是8s后输出,这里其实我们就该考虑到,这个8s那来的,结合前面两个,可以想到,5 + 3 正好8s,所以这个任务3是等任务2执行完后在执行的。
再往下看任务4 这里传入4s,却是12s后输出的,很明显就是 8 + 4 的结果,所以任务4是在任务2和任务3执行的,而任务5 却是15s后输出,那就是在任务1 后执行的。

总结发现

如下所示
在这里插入图片描述

其实可以联想到,这里有两条任务线在并发执行,任务1 由于10s后才输出,任务2 是5s后输出,所以任务3 会排在任务2后面执行,这就是为啥任务3 明明传入3s,但结果是8s后才输出了,依次类推,任务4接上,到任务5时,任务1执行完毕,此时任务2那条线,任务4在执行占用,所以任务5接在任务1后执行。

补全SuperTask代码,实现逻辑

class SuperTask {constructor(parallelNum = 2) {this.parallelNum = parallelNum // 最大并发数this.taskList = [] // 存储任务线this.runNum = 0 // 正在执行的任务数}add(task) {// 不管怎样,先把任务存在数组里面,由于外面是.then,所以这里是promise,为了执行任务的时候,执行结束要回调,所以把resolve,reject也保存起来return new Promise((resolve, reject) => {this.taskList.push({task,resolve,reject,})// 存进来的时候调下执行函数this._run()})}_run() {// 如果正在执行的数量 小于 最大并发数 并且 存储任务线大于0, 那么就执行存储任务中的任务while (this.runNum < this.parallelNum && this.taskList.length) {// 拿出来任务,并删除存储任务线的数据const { task, resolve, reject } = this.taskList.shift()// 因为外面的timeout方法返回的是一个promise,所以这里是异步需要.thentask().then(resolve, reject).finally(() => {// 执行完了,正在执行任务数要--,并且再次调用下执行函数this.runNum--this._run()})// 这里正在执行的任务数要++this.runNum++}}
}

完整代码和结果

class SuperTask {constructor(parallelNum = 2) {this.parallelNum = parallelNum // 最大并发数this.taskList = [] // 存储任务线this.runNum = 0 // 正在执行的任务数}add(task) {// 不管怎样,先把任务存在数组里面,由于外面是.then,所以这里是promise,为了执行任务的时候,执行结束要回调,所以把resolve,reject也保存起来return new Promise((resolve, reject) => {this.taskList.push({task,resolve,reject,})// 存进来的时候调下执行函数this._run()})}_run() {// 如果正在执行的数量 小于 最大并发数 并且 存储任务线大于0, 那么就执行存储任务中的任务while (this.runNum < this.parallelNum && this.taskList.length) {// 拿出来任务,并删除存储任务线的数据const { task, resolve, reject } = this.taskList.shift()// 因为外面的timeout方法返回的是一个promise,所以这里是异步需要.thentask().then(resolve, reject).finally(() => {// 执行完了,正在执行任务数要--,并且再次调用下执行函数this.runNum--this._run()})// 这里正在执行的任务数要++this.runNum++}}
}// 题目要求如下 依次执行addTask函数,输出结果如下 任务1 10s后输出,任务2 5s后输出,任务3 8s后输出,任务4 12s后输出,任务5 15s后输出
const superTask = new SuperTask()function timeout(time) {return new Promise((resolve) => {setTimeout(resolve, time)})
}function addTask(time, name) {superTask.add(() => timeout(time)).then(() => {console.log(`任务${name}完成`)})
}addTask(10000, 1) // 10s后输出
addTask(5000, 2) // 5s后输出
addTask(3000, 3) // 8s后输出
addTask(4000, 4) // 12s后输出
addTask(5000, 5) // 15s后输出// 任务1 (10s后输出) => 任务5 (15s后输出)
// 任务2 (5s后输出) => 任务3 (8s后输出) => 任务4 (12s后输出)

在这里插入图片描述

http://www.dtcms.com/wzjs/192898.html

相关文章:

  • 优化方案历史优化设计官网
  • 广州市市花南宁seo推广
  • 真人视讯搭建 网站开发国内外十大免费crm软件推荐
  • 扒wordpressseo教程视频
  • 做百度网站那家好百度没有排名的点击软件
  • wordpress本地打不开惠州seo计费
  • 物流网站建设与管理规划书西安建站推广
  • 简洁大气的网站模板软文写作300字
  • 扬州市城市建设监察支队网站自助建站系统下载
  • 政府网站建设的功能百度热门搜索排行榜
  • 医院网站建设解决方案海南网站制作公司
  • edubase wordpress整站多关键词优化
  • 网站开发建设合同株洲seo推广
  • 免费ppt成品网站网络平台销售
  • 动态域名做网站网络销售是什么
  • 如何做枪版电影网站怎么制作网页链接
  • 一线互联网公司排名seo是什么seo怎么做
  • 程序员自己做网站太原百度快速优化排名
  • 自己做网站难河北百度seo关键词排名
  • c 做网站网站宁波seo外包快速推广
  • wordpress编辑文章seo文章代写一篇多少钱
  • 设计师浏览网站sem 优化软件
  • 奉城网站建设kj6699的seo综合查询
  • 南宁微信网站制作百度推广视频
  • 建设网站建设投标网1249中官网词个人开发app可以上架吗
  • 制作简易网站模板百seo排名优化
  • 合同范本的网站超级外链工具源码
  • 网站建设业务活动sem优化公司
  • 格拉苏蒂手表网站广州seo优化电话
  • 湖州 网站建设torrentkitty磁力猫