中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

深度理解nodejs[3]—瘋狂事件代碼

發布時間:2020-07-20 11:36:04 來源:網絡 閱讀:173 作者:jonson_jackson 欄目:開發技術

瘋狂的代碼。

下面這段瘋狂的代碼,你能知道它輸出什么結果嗎?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const https = require('https');
const start = Date.now();
const fs = require('fs');
const crypto = require('crypto');
function dorequest(){
 https.request('https://www.baidu.com',res=>{
   res.on('data',()=>{});
   res.on('end',()=>{
     console.log(Date.now()-start);
   });
 })
 .end();
}


function dohash(){
 crypto.pbkdf2('a','b',100000,512,'sha512',()=>{
   console.log('hash:',Date.now()-start);
 });
}

dorequest();

fs.readFile('test.js','utf8',()=>{
 console.log('FS:',Date.now()-start);
});
dohash();
dohash();
dohash();
dohash();

測試速度:

1
2
3
4
5
6
42
hash: 785
FS: 785
hash: 788
hash: 790
hash: 790

解釋:

  • https不依靠libuv庫的4個默認線程,操作系統資源。其第一個最快的執行完畢

  • FS和pbkdf2都使用了libuv中的線程池

  • 一開始FS與三個pbkdf2搶占了libuv線程池的4個線程,但是由于FS讀取文件,中斷操作。libuv將線程切換到執行最后一個pbkdf2函數。

  • 等到某一個pbkdf2函數執行完畢后,則繼續執行FS函數,所以看到了上面的結果。

  • 本文鏈接: https://dreamerjonson.com/2018/11/09/深度理解nodejs-3-—瘋狂事件代碼/

  • 版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!

深度理解nodejs[3]—瘋狂事件代碼

向AI問一下細節

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

AI

苗栗市| 香港| 手机| 巴青县| 六枝特区| 曲阜市| 柘城县| 桓仁| 永吉县| 遂溪县| 孟村| 手游| 南皮县| 东明县| 隆德县| 科技| 望奎县| 鄂伦春自治旗| 九龙坡区| 哈巴河县| 玉门市| 岚皋县| 吴川市| 平邑县| 平和县| 满城县| 扶风县| 永兴县| 牡丹江市| 三江| 镇江市| 靖边县| 濉溪县| 林周县| 东辽县| 渝中区| 呼玛县| 息烽县| 历史| 长春市| 顺昌县|