寶付初識單執行緒的 Node.js

一流湧進發表於2019-08-30

從Node.js進入人們的視野時,我們所知道的它就由這些關鍵字組成  事件驅動、非阻塞I/O、高效、輕量,它在官網中也是這麼描述自己的。

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an  event-drivennon-blocking I/O model that makes it  lightweight and  efficient.

於是,會有下面的場景出現:

當我們剛開始接觸它時,可能會好奇:

  • 為什麼在瀏覽器中執行的 Javascript 能與作業系統進行如此底層的互動?

當我們在用它進行檔案 I/O 和網路 I/O 的時候,發現方法都需要傳入回撥,是非同步的:

  • 那麼這種非同步,非阻塞的 I/O 是如何實現的?

當我們習慣了用回撥來處理 I/O,發現當需要順序處理時,Callback Hell 出現了,於是有想到了同步的方法:

  • 那麼在非同步為主的 Node.js,有同步的方法嘛?

身為一個前端,你在使用時,發現它的非同步處理是基於事件的,跟前端很相似:

  • 那麼它如何實現的這種事件驅動的處理方式呢?

當我們慢慢寫的多了,處理了大量 I/O 請求的時候,你會想:

  • Node.js 非同步非阻塞的 I/O 就不會有瓶頸出現嗎?

之後你還會想:

  • Node.js 這麼厲害,難道沒有它不適合的事情嗎?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69905323/viewspace-2655576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章