回覆列表
  • 1 # 使用者928021938244

    就是去處理其他請求。

    Node.js的主執行緒是不會處於block(等待)狀態的,除非使用fs.readFileSync等node api裡的同步方法。

    Node.js使用的是Reactor模式,凡是遇到需要block的地方,要麼使用系統的非同步API(網路請求),要麼扔到執行緒池裡(檔案讀寫)去做,主執行緒接著處理其他請求。

    簡單描述Node.js主執行緒的工作順序:

    執行到時的Timer

    檢查非同步操作佇列裡是否有已完成的,並執行回撥

    檢查新的連線

    回到1

    所以多請求併發的時候,Node.js本質上是在排隊,但是每個人等待的時間都很短,除非每個請求都耗費大量CPU時間。一般來說web server大多數時間都在等IO(網路請求),所以Node.js這種Reactor模式的Server對於CPU利用是相對高效的,避免了執行緒切換導致的的CPU上下文切換。

  • 中秋節和大豐收的關聯?
  • 誰知道有一種標記為小鯊魚的服裝品牌是什麼牌子?