javascript – Ein Vergleich von Knoten- und Java-Parallelitätsszenarien, bitte helfen Sie bei der Erläuterung
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-17 10:08:00
0
1
528

Angenommen, ein Knotenprogramm ist unter einer Single-Core-CPU installiert. Das Programm ist sehr einfach. Es handelt sich um einen HTTP-Server. Wenn eine Anfrage eingeht, wird das Ergebnis mit einer Verzögerung von 5 Sekunden zurückgegeben Synchronisationmacht etwas) Wenn 3 Anfragen gleichzeitig eingehen, welches Szenario wird das Ergebnis sein: Szenario 1: Die erste Anfrage erhält das Ergebnis nach 5 Sekunden, die zweite und dritte Anfrage erhalten das Ergebnis nach 10 und 15 Sekunden.

Szenario 2: Alle Anfragen Erhalten Sie Ergebnisse nach 5 Sekunden


Was für ein Szenario wird es sein, wenn wir auf Java+Tomcat umsteigen? Vielen Dank an alle!

曾经蜡笔没有小新
曾经蜡笔没有小新

Antworte allen(1)
洪涛

如果是 同步的 延迟 5秒,且 node.js 为简单的单线程运行,不加入 cluster 等优化

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

那么,多个请求同时发起时,场景1

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

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

那结果当然是场景2

至于 Java ,并发是多线程支撑的,在机能足够的情况下,比如并发仅仅为3,可以粗略的视为是:场景2。当然由于涉及到线程开销,在并发量上升之后,其内存的占用将远超 node.js 的模型

实际上这也是为什么我们说 node.js 更加适合 IO密集 低运算 的场景。可以参考我的另一个回答

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!