亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

node thread.sleep實現示例

發布時間:2020-10-15 15:52:36 來源:腳本之家 閱讀:156 作者:有把但沒什么卵用 欄目:web開發

最近在寫一些奇怪的東西的時候,發現大佬們用go或者其他語言實現的并發任務用了thread.sleep讓主進程暫停。

回頭一想,媽個雞我要復制粘貼到node一直循環不合適啊,我也需要暫停來著!

怎么辦??

抓了腦袋一會去npm上找了下相關的包,發現有個叫thread-sleep的包,下載量還挺高。

抱著好奇心去看了下源碼,又發現源碼相當之騷氣

'use strict';

var childProcess = require('child_process');
var nodeBin = process.argv[0];

module.exports = sleep;
function sleep(milliseconds) {
 var start = Date.now();
 if (milliseconds !== Math.floor(milliseconds)) {
  throw new TypeError('sleep only accepts an integer number of milliseconds');
 } else if (milliseconds < 0) {
  throw new RangeError('sleep only accepts a positive number of milliseconds');
 } else if (milliseconds !== (milliseconds | 0)) {
  throw new RangeError('sleep duration out of range')
 }
 milliseconds = milliseconds | 0;

 var shouldEnd = start + milliseconds;
 try {
  childProcess.execFileSync(nodeBin, [ '-e',
   'setTimeout(function() {}, ' + shouldEnd + ' - Date.now());'
  ], {
   timeout: milliseconds,
  });
 } catch (ex) {
  if (ex.code !== 'ETIMEDOUT') {
   throw ex;
  }
 }
 var end = Date.now();
 return end - start;
}

黑人問號???

這是什么奇怪的實現。

翻閱node文檔發現

Synchronous Process Creation#

The child_process.spawnSync(),
child_process.execSync(), and child_process.execFileSync() methods are synchronous and WILL block the Node.js event loop,
pausing execution of any additional code until the spawned process exits.

Blocking calls like these are mostly useful for simplifying general-purpose scripting tasks and for simplifying the loading/processing of application configuration at startup.
???

以上三種同步方法會阻塞nodejs的事件循環,除非創建的子進程執行完了,才會繼續執行下面的代碼。

thread-sleep包的作者正是利用這一特性實現了sleep功能。嘆為觀止

node thread.sleep實現示例

所以很多時候我們沒辦法解決現有問題的原因是對文檔不熟么??

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

苏州市| 南乐县| 颍上县| 泽库县| 德安县| 泾川县| 东乌珠穆沁旗| 将乐县| 平顶山市| 巫溪县| 新和县| 临夏县| 陵川县| 观塘区| 申扎县| 开平市| 石首市| 康平县| 板桥市| 兴国县| 吉木萨尔县| 九龙县| 孟州市| 大荔县| 左云县| 商丘市| 永德县| 古交市| 奈曼旗| 分宜县| 吉首市| 绥江县| 固原市| 陕西省| 郁南县| 台山市| 晋中市| 新竹县| 中山市| 姜堰市| 高台县|