m0_59289190
m0_59289190
2021-06-14 13:50
采纳率: 100%
浏览 15

写一个函数,可以控制最大并发数

写一个函数,控制最大并发数,求大佬解答面试题?!?!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • technologist_30
    CSDN专家-张老师 2021-06-14 13:51
    已采纳
    class Semaphore {
        constructor(available) {
            this.available = available;
            this.waiters = [];
            this._continue = this._continue.bind(this);
        }
    
        take(callback) {
            if (this.available > 0) {
                this.available--;
                callback();
            } else {
                this.waiters.push(callback);
            }
        }
    
        leave() {
            this.available++;
            if (this.waiters.length > 0) {
                process.nextTick(this._continue);
            }
        }
    
        _continue() {
            if (this.available > 0) {
                if (this.waiters.length > 0) {
                    this.available--;
                    const callback = this.waiters.pop();
                    callback();
                }
            }
        }
    }
    点赞 1 评论
  • QA_Assistant
    有问必答小助手 2021-06-17 13:53

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

    点赞 评论

相关推荐