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

資訊專欄INFORMATION COLUMN

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

Yang_River / 1112人閱讀

摘要:當你使用的活動監視器你會發現,實際的進程數為菜鳥是因為線程池的原因嗎老鳥不錯嘛,還知道線程池呢但非也非也。菜鳥竟然不是線程池老鳥你忽視了集成了引擎。啟動后會創建實例,而實例是多線程的。

老鳥:伸著懶腰,看著窗外明媚的陽光,喝一口清茶,心情大美。一天的好心情莫過于此。
老鳥:菜鳥,你這消失了大半個月,忙什么呢?
菜鳥:聽說node最近很火,這不趁著年輕,多儲存點知識儲備呢!
老鳥:那你說說你對node的理解?
菜鳥:node的三大特點:單線程,事件驅動,非阻塞I/O...
老鳥:說說你理解的單線程?
菜鳥:打個比方:皇上處理朝政時,不需要事必躬親,要學會放權。所有的朝政大臣向丞相報告,由丞相進行整理,并把最后的方案向皇上報告。由皇上進行定奪。
老鳥:理解的不錯嘛,可你有沒有想過,node既然是單線程,又是如何實現異步和非阻塞I/O呢?
菜鳥:node是事件驅動,所有的事件做成一個隊列,順序執行的呀
老鳥:你這樣說也沒錯,但node是支持多線程的。當你使用MAC的活動監視器你會發現,實際的進程數為6

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


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

參考資料

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105112.html

相關文章

  • 只為那句承諾-大話Promise

    摘要:什么是是異步編程的一種解決方案,比傳統的解決方案回調函數和事件更合理和更強大。函數可以將狀態轉變為狀態。對象通過方法來添加回調函數。當發生錯誤的時候可以通過方法,來定義回調函數。接受數組作為參數傳入,每個元素都是一個對象。 大家周末好,要說最近幾年什么語言大紅大紫,當屬JavaScript了。話說雖然是10天就創造出的語言,但是人家能文能武。web前端自然不必多說了,各種框架你方登罷我...

    EastWoodYang 評論0 收藏0
  • 大話javascript 4期:事件循環(3)

    摘要:令人困惑的是,文檔中稱,指定的回調函數,總是排在前面。另外,由于指定的回調函數是在本次事件循環觸發,而指定的是在下次事件循環觸發,所以很顯然,前者總是比后者發生得早,而且執行效率也高因為不用檢查任務隊列。 一、定時器 除了放置異步任務的事件,任務隊列還可以放置定時事件,即指定某些代碼在多少時間之后執行。這叫做定時器(timer)功能,也就是定時執行的代碼。 定時器功能主要由setTim...

    liujs 評論0 收藏0
  • 大話javascript 4期:事件循環(1)

    摘要:腳本執行,事件處理等。引擎線程,也稱為內核,負責處理腳本程序,例如引擎。事件觸發線程,用來控制事件循環可以理解為,引擎線程自己都忙不過來,需要瀏覽器另開線程協助。異步請求線程,也就是發出請求后,接收響應檢測狀態變更等都是這個線程管理的。 一、進程與線程 現代操作系統比如Mac OS X,UNIX,Linux,Windows等,都是支持多任務的操作系統。 什么叫多任務呢?簡單地說,就是操...

    codergarden 評論0 收藏0
  • Node.js:淺析高并發與分布式集群

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

    Lin_YT 評論0 收藏0
  • 深入理解Node.js 進程與線程(8000長文徹底搞懂)

    摘要:在單核系統之上我們采用單進程單線程的模式來開發。由進程來管理所有的子進程,主進程不負責具體的任務處理,主要工作是負責調度和管理。模塊與模塊總結無論是模塊還是模塊,為了解決實例單線程運行,無法利用多核的問題而出現的。 前言 進程與線程是一個程序員的必知概念,面試經常被問及,但是一些文章內容只是講講理論知識,可能一些小伙伴并沒有真的理解,在實際開發中應用也比較少。本篇文章除了介紹概念,通過...

    Harpsichord1207 評論0 收藏0

發表評論

0條評論

Yang_River

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<