一、node單線程實(shí)現(xiàn)高并發(fā)原理
眾所周知nodejs是單線程且支持高并發(fā)的腳本語言??蔀槭裁磫尉€程的nodejs可以支持高并發(fā)呢?很多人都不明白其原理,下面我來談?wù)勎业睦斫猓?/p>
1. node的優(yōu)點(diǎn):I/O密集型處理是node的強(qiáng)項(xiàng),因?yàn)閚ode的I/O請求都是異步的(如:sql查詢請求、文件流操作操作請求、http請求...)
a. 什么是異步?
異步:發(fā)出操作指令,然后就可以去做別的事情了,所有操作完成后再執(zhí)行回調(diào)
異步的實(shí)現(xiàn)原理:
// 第一步:定義變量 let a = 1; // 第二步:發(fā)出指令,然后把回調(diào)函數(shù)加入異步隊(duì)列(回調(diào)函數(shù)并沒有執(zhí)行) setTimeout(() => { console.log(a); }, 0) // 第三步:賦值,回調(diào)函數(shù)沒有執(zhí)行 a = 2; // 第四步:發(fā)出指令,然后把回調(diào)函數(shù)加入異步隊(duì)列(回調(diào)函數(shù)并沒有執(zhí)行) setTimeout(() => { console.log(a); }, 0) // 第五步:賦值,回調(diào)函數(shù)沒有執(zhí)行 a = 3; // 當(dāng)所有代碼執(zhí)行完畢,cpu空閑下來了,就會開始執(zhí)行異步隊(duì)列里面的回調(diào)函數(shù) // 所以最后控制臺輸出:3 3
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。