首页 > 其他分享 >并行排除任务代码

并行排除任务代码

时间:2024-05-16 17:43:22浏览次数:7  
标签:addTask resolve tasks 代码 并行 排除 task reject runningCount

class SuperTask {       constructor(parallelCount = 2) {         this.parallelCount = parallelCount;         this.tasks = [];         this.runningCount = 0;       }       add(task) {         return new Promise((resolve, reject) => {           this.tasks.push({ task, resolve, reject })           this._runTask()         })       };       _runTask() {         while (this.runningCount < this.parallelCount && this.tasks.length) {           const { task, resolve, reject } = this.tasks.pop();           this.runningCount++;           Promise.resolve(task()).then(resolve, reject).finally(() => {             this.runningCount--;             this._runTask()           })         }       }     }     function timeout(time) {       return new Promise(resolve => {         setTimeout(() => {           resolve()         }, time);       })     }     const superTask = new SuperTask()     function addTask(time, name) {       superTask.add(() => timeout(time)).then(() => console.log(`task ${name} finish`))     }     // addTask(10000, 1)     // addTask(2000, 2)     // addTask(3000, 3)     // addTask(4000, 4)

标签:addTask,resolve,tasks,代码,并行,排除,task,reject,runningCount
From: https://www.cnblogs.com/howhy/p/18196378

相关文章

  • 流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务
    作者:木烟在YAML化配置流水线时,你是否会遇到以下问题?单流水线中批量执行类似任务场景时,YAML中需要定义多个类似逻辑的Job,Job越多,流水线YAML配置的越长,YAML中的重复代码越多,代码复用性低,可读性差;管理员统一管理多流水线,多应用技术架构和研发流程类似,仅些许构建、部署参......
  • 流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务
    作者:木烟在YAML化配置流水线时,你是否会遇到以下问题?单流水线中批量执行类似任务场景时,YAML中需要定义多个类似逻辑的Job,Job越多,流水线YAML配置的越长,YAML中的重复代码越多,代码复用性低,可读性差;管理员统一管理多流水线,多应用技术架构和研发流程类似,仅些许构建、部署参......
  • Python视频混剪代码
    公司需要剪辑,近期混剪特别多,所以开发了这个,有兴趣的研究研究,如果有好的代码补充优化或者分享麻烦艾特我`importosimporthashlibimportthreadingimportrandomimportthreadingimportmoviepy.editorasmpyfrommoviepy.editorimportAudioFileClip,VideoFileClip,co......
  • 代码随想录算法训练营第八天 | 344.反转字符串 替换数字
    344.反转字符串题目链接文章讲解视频讲解时间复杂度o(n)空间复杂度o(1)思路:双指针解决,和翻转数组一样classSolution{public:voidreverseString(vector<char>&s){intleft=0,right=s.size()-1;while(left<right){......
  • JAVA版的代码生成器gen
    自己安装方式dockerpullregistry.cn-hangzhou.aliyuncs.com/tanghc/gen:latest 下载完毕后,执行 dockerrun--namegen--restart=always\-p6969:6969\-eJAVA_OPTS="-server-Xms64m-Xmx64m-DLOCAL_DB=/opt/gen/gen.db"\-v/opt/gen/:/opt/gen/\......
  • 快速排序代码实现
    代码如下:1#include<stdio.h>2//快速排序函数,形参列表为数组,左指针位置,右指针位置,int*arr等价于intarr[]3voidQkSort(int*arr,intleft,intright){4if(left>right)//左指针位置必须大于右指针位置5{6return;7}8//变......
  • 从C#通过代码启动Python脚本没有接收到参数
    本来写的是这样:ProcessStartInfopsi=newProcessStartInfo{FileName="cmd.exe",WorkingDirectory=FrmNewProject.GetFolderPath()+"\\SolverForEXE",RedirectStanda......
  • 代码随想录算法训练营第第八天 | 344.反转字符串 、541. 反转字符串II、卡码网:54.替
    344.反转字符串建议:本题是字符串基础题目,就是考察reverse函数的实现,同时也明确一下平时刷题什么时候用库函数,什么时候不用库函数题目链接/文章讲解/视频讲解:https://programmercarl.com/0344.反转字符串.html/***@param{character[]}s*@return{void}Donotret......
  • python代码上传文件到fastdfs
    Install直接pip安装,需要Python3.10+pipinstallfastdfs-clientInitialclient可以用其他教程的client.conf配置文件的方式,也可以直接传入ip列表进行初始化fromfastdfs_clientimportFastdfsClientclient=FastdfsClient(trackers=('ip1','ip2',...))Uploadbyfil......
  • 【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码
    问题描述对于Azure资源进行配置操作,门户上可以正常操作。但是想通过Python代码实现,这样可以批量处理。那么在没有SDK的情况下,是否有快速办法呢? 问题解答当然可以,AzurePortal上操作的所有资源都是通过RESTAPI来实现的,所以只要找到正确的API,就可以通过浏览器中抓取到的请求B......