国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 一個node和java并發(fā)場景對比, 幫忙解釋一下

瀏覽:108日期:2023-11-28 14:48:06

問題描述

假設單核CPU下安裝一個node程序, 程序里面很簡單, 一個http服務器, 有請求進來, 延遲5秒返回結(jié)果(可以理解了5s同步做一些事情)

當有3個請求同時進來時, 請問結(jié)果會是哪個場景:場景1:第一個請求在5秒后拿到結(jié)果, 第二個和第三個是在10s和15s后拿到結(jié)果場景2:所有請求都是5秒后拿到結(jié)果

如果換成java+tomcat, 會是哪種場景, 謝謝大家!

問題解答

回答1:

如果是 同步的 延遲 5秒,且 node.js 為簡單的單線程運行,不加入 cluster 等優(yōu)化

const start = Date.now();while(Date.now() - start < 5000) { ; }return res.send();

那么,多個請求同時發(fā)起時,場景1

但通常在 node.js 很少真的碰到完全阻塞的同步等待 5 秒,如果是下列情況:

setTimeOut(() => { return res.send(); }, 5000);

那結(jié)果當然是場景2

至于 Java ,并發(fā)是多線程支撐的,在機能足夠的情況下,比如并發(fā)僅僅為3,可以粗略的視為是:場景2。當然由于涉及到線程開銷,在并發(fā)量上升之后,其內(nèi)存的占用將遠超 node.js 的模型

實際上這也是為什么我們說 node.js 更加適合 IO密集 低運算 的場景。可以參考我的另一個回答

標簽: JavaScript
主站蜘蛛池模板: 阿拉善右旗| 皮山县| 延庆县| 美姑县| 阳山县| 鄯善县| 辰溪县| 遂宁市| 安阳县| 遂溪县| 客服| 弥勒县| 周口市| 石泉县| 措美县| 扎兰屯市| 桐乡市| 册亨县| 镇宁| 宿迁市| 房产| 溧水县| 龙游县| 抚松县| 咸丰县| 广昌县| 渑池县| 宣化县| 鲁甸县| 大荔县| 枞阳县| 开江县| 商水县| 潼关县| 龙门县| 北碚区| 会泽县| 白水县| 甘谷县| 五常市| 宣城市|