国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs中實現阻塞實例

2019-11-20 12:52:18
字體:
來源:轉載
供稿:網友

node.js中與生俱來的單線程編程、回調函數異步式風格讓我們有時喜有時憂。先說單線程,很多人會費解于node.js的單線程如何能做到高并發?這個問題不是本文重點,點到為止。澄清一點,node.js的單線程僅僅指javascript引擎是單線程的,無論如何我們沒有辦法在javascript中實現多線程和阻塞(本文用到的方法同樣不是通過V8引擎實現同步的);但對于node.js的其他方面不代表不能多線程,例如IO。如果現在node.js遭受大量請求,而這些請求都是IO密集型的,那么此時node每接受一個請求,在遇到耗時較長的IO操作時,javascript線程并不會一直在此等待,而是交出控制,在回調堆棧里添加IO操作完成后要執行的操作(當回調層級過多,訪問數量過大,大量的回調鏈可能會爆棧)。而在這段時間內,node.js又可以處理其他請求了。所以對于node.js而言,雖然javascript是單線程的,每次只能處理一個請求,但javascript處理一個請求的時間往往較短(對于IO密集型應用而言),只要可以異步處理,那么在處理的過程中,此次請求都會釋放控制,使node.js能處理其他請求。這并發請求的同時,IO其實一直處于并發狀態,減少處理請求的線程數,節約資源以增加IO的線程數,對于通常耗時很長的IO密集型請求來說,無疑能帶來性能上的提升。

前面

主站蜘蛛池模板: 乡城县| 资兴市| 莎车县| 长宁县| 营山县| 出国| 太仓市| 衡南县| 舞钢市| 红河县| 项城市| 花莲县| 绍兴县| 千阳县| 江门市| 蒙城县| 许昌市| 花莲县| 鲁甸县| 湟源县| 嘉义县| 库车县| 成都市| 古丈县| 驻马店市| 漠河县| 家居| 济源市| 渭南市| 鄂托克旗| 武鸣县| 孝感市| 灌阳县| 福贡县| 姜堰市| 杭锦后旗| 洛扎县| 海口市| 曲沃县| 青神县| 商南县|