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

怎么安装下载的字体到wordpress独立站seo优化

怎么安装下载的字体到wordpress,独立站seo优化,免费申请手机号码,ie显示wordpress网页不完整如何实现异步并发限制 文章目录 如何实现异步并发限制方法1注意点 方法2题目要求实现方法注意点 之前一直没有系统的去总结异步并发限制的实现思路,今天就来做个总结吧 方法1 只有一个变量 pool:代表正在执行中的任务中的集合 function sleep(name, t…

如何实现异步并发限制

文章目录

  • 如何实现异步并发限制
    • 方法1
      • 注意点
    • 方法2
      • 题目要求
      • 实现方法
      • 注意点

之前一直没有系统的去总结异步并发限制的实现思路,今天就来做个总结吧

方法1

只有一个变量
pool:代表正在执行中的任务中的集合

function sleep(name, timeOut) {return new Promise(resolve => {console.log(`${name}开始了`);setTimeout(() => {console.log(`${name}结束了`);resolve();}, timeOut);})}const tasks = [() => sleep(1, 1000),() => sleep(2, 2000),() => sleep(3, 3000),() => sleep(5, 6000),() => sleep(8, 8000),];async function parallelLimit(tasks, limit = 2) {// 正在执行中的任务的集合const pool = new Set();for (const task of tasks) {const promise = task();pool.add(promise);promise.then(() => pool.delete(promise));if (pool.size >= limit) {await Promise.race(pool);}}return Promise.all(pool);}parallelLimit(tasks).then(() => {console.log('任务已全部执行');})

注意点

  1. 此时的 pool 代表的是:正在执行中的任务中的集合
  2. 使用 Promise.race 这种方式不能保证执行顺序,若要求要按顺序执行,请看第二种方法

方法2

题目要求

要求实现 Scheduler 函数,完成异步并发限制数为2的功能,且需要保证执行顺序

const scheduler = new Scheduler(2);const timeout = (time) =>new Promise((resolve) => {setTimeout(resolve, time);});const addTask = (time, order) => {scheduler.add(() => timeout(time).then(() => console.log(order)))
}addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')// 500ms时,2完成,输出2
// 800ms时,3完成,输出3
// 1000ms时,1完成,输出1
// 1200ms时,4完成,输出4

实现方法

function Scheduler(limit) {// 模拟队列,保存所有任务this.pool = [];// 当前正在执行任务的数目this.count = 0;this.add = function (fn) {this.pool.push(fn);this.run();}this.run = function () {if (this.pool.length && this.count < limit) {const task = this.pool.shift(); // 保证执行顺序this.count++;task().then(() => {this.count--;this.run();})}}
}const scheduler = new Scheduler(2);const timeout = (time) =>new Promise((resolve) => {setTimeout(resolve, time);});const addTask = (time, order) => {scheduler.add(() => timeout(time).then(() => console.log(order)))
}addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')// 500ms时,2完成,输出2
// 800ms时,3完成,输出3
// 1000ms时,1完成,输出1
// 1200ms时,4完成,输出4

注意点

  1. pool 代表保存所有任务的数组
  2. count 代表当前正在执行任务的数目
  3. 保证顺序:需要从数组中顺序取出并执行

两个方法各变量代表的含义不同,实现的思路也就不同,要好好区分两种方法的思想,不然会混淆(像我一样☁️☁️☁️)


道阻且长,面试加油,边复习边查漏补缺吧!!!

passion!!!

http://www.hengruixuexiao.com/news/51563.html

相关文章:

  • 如何在雅虎台湾做企业网站深圳seo云哥
  • 有哪些网站可以免费做推广的商丘优化公司
  • 如何在自己做的网站中顶置内容品牌营销策略四种类型
  • 怎样跟网站做优化呢企业qq怎么申请
  • eclipse tomcat 网站开发搜索引擎优化英文简称为
  • 线上做汉语教师网站互联网广告推广好做吗
  • 企业网站网址湖北荆门今日头条
  • 什么样 个人网站 备案电商培训班一般多少钱一个月
  • 建站服务外贸泰安百度公司代理商
  • 网站开发服务税率是多少网站怎么创建
  • 我想自己卖特产怎么做网站推广产品的方法和步骤
  • 哈尔滨开发网站网络推广违法吗
  • 阿里云服务器做美女网站如何优化网络速度
  • 网站换空间商什么意思百度热搜榜单
  • 成华区微信网站建设推广百度seo优化排名如何
  • 怎么做电玩网站灯塔网站seo
  • 站长seo查询工具百度竞价排名推广
  • 海淀区社会建设工作办公室网站外媒头条最新消息
  • 用php做的网站有哪些梁水才seo优化专家
  • 上海网站关键排名教师遭网课入侵直播录屏曝光广场舞
  • 邢台 网站建设谷歌paypal下载
  • 上海 网站公安备案海外品牌推广
  • 湖州高端网站建设公司网站seo推广多少钱
  • 河北网站开发联系电话成都seo优化排名公司
  • 网站论坛怎么做 csdn推销产品的软文500字
  • 如何修改上线网站双11销量数据
  • 最专业的网站设计平台搜狗推广登录
  • WordPress修改笔记惠州seo快速排名
  • 网站建设前的分析公司概况了解长春建站程序
  • 金融网站建设有链接的网站