概念上的問題,找了些文章沒搞懂。大部分文章都說NodeJs因為異步模型會有較高的吞吐量,適合做IO服務器。 但是異步模型應該是指發起一個IO操作不需要等到結果就去先做別的事情吧? 而作為服務器應該是要接收請求,接到后執行對應的操作。 比如我要查詢我的用戶信息,NodeJs做的事情是“接收到一個Post請求” -> “執行函數findUserDetail(userId)” ->“將用戶信息返回給前端”,這個過程好像和異步沒有關系?所以大量的請求(且計算量小、CPU不密集)情況下為什么服務器用NodeJs會比Java之類的快?比如在知乎|使用Node.js的優勢和劣勢都有哪些這個帖子中,很多人都提到“處理高并發場景性能更高”。問題來源:同學面試被問題這個問題,然后發現我自己也答不出來。 一直以來和別人介紹NodeJs時都會說“作為Web服務器有較大吞吐量”,但是其實一直沒搞懂。
1 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
你開了一家客棧,雇了5個伙計。每當客人來,就選一個伙計全程招待客人,一對一服務,直至客人離店。此時客棧最多同時接待5個客人。
于是虧損了。
你又開了一家客棧,還是雇了5個伙計,但是換了經營策略。每個伙計不再對客人貼身服務,而是按順序滿足每一位客人的需求,然后轉而服務下個客人?,F在客棧最多同時接待的人數為客棧容量上限。
這樣成本不變,賺的錢又多,好開心。
前者是Java,后者是Node。Java用多線程處理并發,Node用異步處理并發。
推薦閱讀: node.js應用高并發高性能的核心關鍵本質是什么?
- 1 回答
- 0 關注
- 1667 瀏覽
添加回答
舉報
0/150
提交
取消