国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

大話-node真的是單線程嗎?

Yang_River / 1109人閱讀

摘要:當(dāng)你使用的活動(dòng)監(jiān)視器你會(huì)發(fā)現(xiàn),實(shí)際的進(jìn)程數(shù)為菜鳥(niǎo)是因?yàn)榫€程池的原因嗎老鳥(niǎo)不錯(cuò)嘛,還知道線程池呢但非也非也。菜鳥(niǎo)竟然不是線程池老鳥(niǎo)你忽視了集成了引擎。啟動(dòng)后會(huì)創(chuàng)建實(shí)例,而實(shí)例是多線程的。

老鳥(niǎo):伸著懶腰,看著窗外明媚的陽(yáng)光,喝一口清茶,心情大美。一天的好心情莫過(guò)于此。
老鳥(niǎo):菜鳥(niǎo),你這消失了大半個(gè)月,忙什么呢?
菜鳥(niǎo):聽(tīng)說(shuō)node最近很火,這不趁著年輕,多儲(chǔ)存點(diǎn)知識(shí)儲(chǔ)備呢!
老鳥(niǎo):那你說(shuō)說(shuō)你對(duì)node的理解?
菜鳥(niǎo):node的三大特點(diǎn):單線程,事件驅(qū)動(dòng),非阻塞I/O...
老鳥(niǎo):說(shuō)說(shuō)你理解的單線程?
菜鳥(niǎo):打個(gè)比方:皇上處理朝政時(shí),不需要事必躬親,要學(xué)會(huì)放權(quán)。所有的朝政大臣向丞相報(bào)告,由丞相進(jìn)行整理,并把最后的方案向皇上報(bào)告。由皇上進(jìn)行定奪。
老鳥(niǎo):理解的不錯(cuò)嘛,可你有沒(méi)有想過(guò),node既然是單線程,又是如何實(shí)現(xiàn)異步和非阻塞I/O呢?
菜鳥(niǎo):node是事件驅(qū)動(dòng),所有的事件做成一個(gè)隊(duì)列,順序執(zhí)行的呀
老鳥(niǎo):你這樣說(shuō)也沒(méi)錯(cuò),但node是支持多線程的。當(dāng)你使用MAC的活動(dòng)監(jiān)視器你會(huì)發(fā)現(xiàn),實(shí)際的進(jìn)程數(shù)為6

  const http = require("http");
  http.createServer((req, res) => {
    res.end("hello");
  }).listen(8000, () => {
    console.log("server is listening: " + 8000);
  });


菜鳥(niǎo):是因?yàn)?strong>線程池的原因嗎?
老鳥(niǎo):不錯(cuò)嘛,還知道線程池呢?但非也非也。
老鳥(niǎo):首先,線程池是按需創(chuàng)建的,當(dāng)你加載文件IO時(shí),通過(guò)ab模擬訪問(wèn)后,你會(huì)發(fā)現(xiàn),線程數(shù)發(fā)生了變化,這是因?yàn)椋?strong>線程池中默認(rèn)的默認(rèn)值為4。
菜鳥(niǎo):竟然不是線程池?
老鳥(niǎo):你忽視了node集成了V8引擎?Node.js啟動(dòng)后會(huì)創(chuàng)建V8實(shí)例,而V8實(shí)例是多線程的。
菜鳥(niǎo):若有所思中...
老鳥(niǎo):主線程在任何時(shí)候,都不會(huì)阻塞嗎?
菜鳥(niǎo):老鳥(niǎo),經(jīng)你這么一分析,我可不敢肯定的回答了
老鳥(niǎo):當(dāng)然不是的。主線程在特定條件下也是會(huì)阻塞的。Node.js的事件循環(huán)中有一個(gè)階段是Poll。poll階段在特定情況下是會(huì)阻塞的。
老鳥(niǎo):當(dāng)然,你也不要羞愧,知識(shí)是永無(wú)止境的,我只是提醒你,要不斷探索,不斷質(zhì)疑,才能不斷求知。
菜鳥(niǎo):受教了,給你點(diǎn)個(gè)贊,順便收藏一下

參考資料

https://nodejs.org/en/docs/gu...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105112.html

相關(guān)文章

  • 只為那句承諾-大話Promise

    摘要:什么是是異步編程的一種解決方案,比傳統(tǒng)的解決方案回調(diào)函數(shù)和事件更合理和更強(qiáng)大。函數(shù)可以將狀態(tài)轉(zhuǎn)變?yōu)闋顟B(tài)。對(duì)象通過(guò)方法來(lái)添加回調(diào)函數(shù)。當(dāng)發(fā)生錯(cuò)誤的時(shí)候可以通過(guò)方法,來(lái)定義回調(diào)函數(shù)。接受數(shù)組作為參數(shù)傳入,每個(gè)元素都是一個(gè)對(duì)象。 大家周末好,要說(shuō)最近幾年什么語(yǔ)言大紅大紫,當(dāng)屬JavaScript了。話說(shuō)雖然是10天就創(chuàng)造出的語(yǔ)言,但是人家能文能武。web前端自然不必多說(shuō)了,各種框架你方登罷我...

    EastWoodYang 評(píng)論0 收藏0
  • 大話javascript 4期:事件循環(huán)(3)

    摘要:令人困惑的是,文檔中稱,指定的回調(diào)函數(shù),總是排在前面。另外,由于指定的回調(diào)函數(shù)是在本次事件循環(huán)觸發(fā),而指定的是在下次事件循環(huán)觸發(fā),所以很顯然,前者總是比后者發(fā)生得早,而且執(zhí)行效率也高因?yàn)椴挥脵z查任務(wù)隊(duì)列。 一、定時(shí)器 除了放置異步任務(wù)的事件,任務(wù)隊(duì)列還可以放置定時(shí)事件,即指定某些代碼在多少時(shí)間之后執(zhí)行。這叫做定時(shí)器(timer)功能,也就是定時(shí)執(zhí)行的代碼。 定時(shí)器功能主要由setTim...

    liujs 評(píng)論0 收藏0
  • 大話javascript 4期:事件循環(huán)(1)

    摘要:腳本執(zhí)行,事件處理等。引擎線程,也稱為內(nèi)核,負(fù)責(zé)處理腳本程序,例如引擎。事件觸發(fā)線程,用來(lái)控制事件循環(huán)可以理解為,引擎線程自己都忙不過(guò)來(lái),需要瀏覽器另開(kāi)線程協(xié)助。異步請(qǐng)求線程,也就是發(fā)出請(qǐng)求后,接收響應(yīng)檢測(cè)狀態(tài)變更等都是這個(gè)線程管理的。 一、進(jìn)程與線程 現(xiàn)代操作系統(tǒng)比如Mac OS X,UNIX,Linux,Windows等,都是支持多任務(wù)的操作系統(tǒng)。 什么叫多任務(wù)呢?簡(jiǎn)單地說(shuō),就是操...

    codergarden 評(píng)論0 收藏0
  • Node.js:淺析高并發(fā)與分布式集群

    摘要:而在單線程環(huán)境下,繞不過(guò)錯(cuò)誤就意味著導(dǎo)致應(yīng)用退出,重啟恢復(fù)的間隙會(huì)導(dǎo)致服務(wù)中斷,這是我們不愿意看到的。這也是支持高并發(fā)的重要原因之一實(shí)際上不光是操作,的絕大多數(shù)操作都是以這種異步的方式進(jìn)行的。 本文首發(fā)于我的個(gè)人博客: kmknkk.xin 不足之處歡迎斧正! Node特性:高并發(fā) 在解釋node為什么能夠做到高并發(fā)之前,不妨先了解一下node的其他幾個(gè)特性: 單線程 我們先來(lái)明確...

    Lin_YT 評(píng)論0 收藏0
  • 深入理解Node.js 進(jìn)程與線程(8000長(zhǎng)文徹底搞懂)

    摘要:在單核系統(tǒng)之上我們采用單進(jìn)程單線程的模式來(lái)開(kāi)發(fā)。由進(jìn)程來(lái)管理所有的子進(jìn)程,主進(jìn)程不負(fù)責(zé)具體的任務(wù)處理,主要工作是負(fù)責(zé)調(diào)度和管理。模塊與模塊總結(jié)無(wú)論是模塊還是模塊,為了解決實(shí)例單線程運(yùn)行,無(wú)法利用多核的問(wèn)題而出現(xiàn)的。 前言 進(jìn)程與線程是一個(gè)程序員的必知概念,面試經(jīng)常被問(wèn)及,但是一些文章內(nèi)容只是講講理論知識(shí),可能一些小伙伴并沒(méi)有真的理解,在實(shí)際開(kāi)發(fā)中應(yīng)用也比較少。本篇文章除了介紹概念,通過(guò)...

    Harpsichord1207 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<