站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        node都是單線程運(yùn)行的嗎

        node是單線程運(yùn)行的,采用單線程異步非阻塞模式;但是嚴(yán)格來說node中存在著多種線程,單線程是指node中只有一個(gè)js引擎在主線程上運(yùn)行,其他的異步操作也是有獨(dú)立的線程去執(zhí)行,同時(shí)node默認(rèn)是單線程,一個(gè)“node.js”無法利用多核資源。

        node都是單線程運(yùn)行的嗎

        本教程操作環(huán)境:windows10系統(tǒng)、nodejs 12.19.0版本、Dell G3電腦。

        node都是單線程運(yùn)行的嗎

        node是單線程運(yùn)行的,采用單線程異步非阻塞模式。

        提到node,我們就可以立刻想到單線程、異步IO、事件驅(qū)動(dòng)等字眼。首先要明確的是node真的是單線程的嗎,如果是單線程的,那么異步IO,以及定時(shí)事件(setTimeout、setInterval等)又是在哪里被執(zhí)行的。

        其實(shí),按照嚴(yán)格來說,node并不是單線程的。node中存在著多種線程,包括:

        js引擎執(zhí)行的線程

        定時(shí)器線程(setTimeout, setInterval)

        異步http線程(ajax)

        我們平時(shí)所說的單線程是指node中只有一個(gè)js引擎在主線程上運(yùn)行。其他異步IO和事件驅(qū)動(dòng)相關(guān)的線程通過libuv來實(shí)現(xiàn)內(nèi)部的線程池和線程調(diào)度。libv中存在了一個(gè)Event Loop,通過Event Loop來切換實(shí)現(xiàn)類似于多線程的效果。簡單的來講Event Loop就是維持一個(gè)執(zhí)行棧和一個(gè)事件隊(duì)列,當(dāng)前執(zhí)行棧中的如果發(fā)現(xiàn)異步IO以及定時(shí)器等函數(shù),就會(huì)把這些異步回調(diào)函數(shù)放入到事件隊(duì)列中。當(dāng)前執(zhí)行棧執(zhí)行完成后,從事件隊(duì)列中,按照一定的順序執(zhí)行事件隊(duì)列中的異步回調(diào)函數(shù)。

        node都是單線程運(yùn)行的嗎

        上圖中從執(zhí)行棧,到事件隊(duì)列,最后事件隊(duì)列中按照一定的順序執(zhí)行回調(diào)函數(shù),整個(gè)過程就是一個(gè)簡化版的Event Loop。此外回調(diào)函數(shù)執(zhí)行時(shí),同樣會(huì)生成一個(gè)執(zhí)行棧,在回調(diào)函數(shù)里面還有可能嵌套異步的函數(shù),也就是說執(zhí)行棧存在著嵌套。

        也就是說node中的單線程是指js引擎只在唯一的主線程上運(yùn)行,其他的異步操作,也是有獨(dú)立的線程去執(zhí)行,通過libv的Event Loop實(shí)現(xiàn)了類似于多線程的上下文切換以及線程池調(diào)度。線程是最小的進(jìn)程,因此node也是單進(jìn)程的。這樣就解釋了為什么node是單線程和單進(jìn)程的。

        推薦學(xué)習(xí):《nodejs視頻教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 一本大道久久a久久精品综合| 国产精品久久久久一区二区三区| 国产亚洲美女精品久久久久狼 | 亚洲国产欧美日韩精品一区二区三区| 国产成人精品免费午夜app | 永久无码精品三区在线4| 99久久精品费精品国产| 国产国拍亚洲精品mv在线观看| 欧美亚洲另类精品第一页 | 97精品伊人久久久大香线蕉 | 亚洲国产精品无码久久久不卡| 国产三级精品三级在线观看| 久久91精品国产91久久麻豆| 国产精品内射后入合集| 亚洲欧美激情精品一区二区| 久久99精品免费一区二区| 国产99精品一区二区三区免费 | 久久棈精品久久久久久噜噜| 亚洲午夜精品久久久久久app| 精品福利一区二区三区| 国产精品一区二区久久精品无码| 国产成人精品曰本亚洲79ren| 亚洲精品一二区| 国产成人精品久久一区二区三区| 97精品一区二区视频在线观看| 久久99精品国产自在现线小黄鸭| 无码国产精品一区二区免费式芒果| 中文字幕无码精品三级在线电影 | 97精品久久天干天天天按摩| 国产美女精品一区二区三区| 久久国产精品无码一区二区三区| 色偷偷88888欧美精品久久久 | 在线亚洲欧美中文精品| 亚洲欧美日韩国产精品影院| 亚洲国产精品综合久久一线| 中文精品久久久久人妻不卡| 亚洲综合无码精品一区二区三区| 亚洲精品二区国产综合野狼| 精品人妻码一区二区三区| 3D动漫精品啪啪一区二区下载 | 久久精品国产亚洲av瑜伽|