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

溫馨提示×

溫馨提示×

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

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

深度理解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

南平市| 克拉玛依市| 盐津县| 阿拉尔市| 湾仔区| 普兰县| 龙江县| 托克托县| 无极县| 马尔康县| 乌兰察布市| 高台县| 张家界市| 商洛市| 延吉市| 宕昌县| 西盟| 墨竹工卡县| 金阳县| 阳泉市| 延吉市| 铜川市| 江川县| 民乐县| 丽江市| 通城县| 建湖县| 平陆县| 两当县| 吉水县| 藁城市| 浏阳市| 丰都县| 调兵山市| 宽甸| 西峡县| 班玛县| 徐州市| 绿春县| 精河县| 西充县|