91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs 14.0.0中FixedQueue的作用是什么

發布時間:2021-07-21 09:04:38 來源:億速云 閱讀:225 作者:Leah 欄目:大數據

nodejs 14.0.0中FixedQueue的作用是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

FixedQueue是用來實現nextTick的。代碼不多。

'use strict';
const {  Array,} = primordials;
// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.const kSize = 2048;const kMask = kSize - 1;


const FixedCircularBuffer = class FixedCircularBuffer {  constructor() {    this.bottom = 0;    this.top = 0;    this.list = new Array(kSize);    this.next = null;  }
 isEmpty() {    return this.top === this.bottom;  }  // 要判斷回環  isFull() {    return ((this.top + 1) & kMask) === this.bottom;  }
 push(data) {    this.list[this.top] = data;    this.top = (this.top + 1) & kMask;  }  // 移除一個元素,更新位置  shift() {    const nextItem = this.list[this.bottom];    // 沒有元素了,不需要更新位置    if (nextItem === undefined)      return null;    this.list[this.bottom] = undefined;    this.bottom = (this.bottom + 1) & kMask;    return nextItem;  }};
module.exports = class FixedQueue {  constructor() {    this.head = this.tail = new FixedCircularBuffer();  }
 isEmpty() {    return this.head.isEmpty();  }
 push(data) {    // 滿了則申請一個新的,head指向新的,tail指向最開始的那個,即最舊的    if (this.head.isFull()) {      // Head is full: Creates a new queue, sets the old queue's `.next` to it,      // and sets it as the new main queue.      this.head = this.head.next = new FixedCircularBuffer();    }    this.head.push(data);  }
 shift() {    const tail = this.tail;    const next = tail.shift();    // 消費完一個FixedCircularBuffer了,下一個    if (tail.isEmpty() && tail.next !== null) {      // If there is another queue, it forms the new tail.      this.tail = tail.next;    }    return next;  }};

nodejs 14.0.0中FixedQueue的作用是什么

關于nodejs 14.0.0中FixedQueue的作用是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孝昌县| 竹北市| 会宁县| 西华县| 邹平县| 英吉沙县| 安陆市| 葫芦岛市| 定日县| 牡丹江市| 纳雍县| 丹阳市| 绵竹市| 深水埗区| 鄂托克前旗| 乐清市| 丹寨县| 大城县| 昌图县| 长汀县| 德化县| 横峰县| 天长市| 依兰县| 济阳县| 黑龙江省| 彰化县| 类乌齐县| 阿坝县| 南漳县| 金坛市| 崇州市| 龙江县| 定安县| 浙江省| 富宁县| 鸡东县| 长岭县| 澜沧| 海安县| 东方市|