recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comparaison des scénarios de concurrence Node et Java, veuillez aider à expliquer

Supposons queun programme de nœud soit installé sous un seul cœurCPU. Le programme est très simple. Lorsqu'une requête arrive, le résultat est renvoyé avec un délai de 5 secondes (il est compréhensible que 5s). la synchronisationfait quelque chose)

Lorsque 3 requêtes arrivent en même temps, quel scénario sera le résultat :
Scénario 1 : La première requête obtient le résultat après 5 secondes, les deuxième et troisième requêtes obtiennent le résultat après 10 s et 15 s
Scénario 2 : Toutes les requêtes obtenez des résultats après 5 secondes

Quel genre de scénario cela sera-t-il si nous passons à Java+Tomcat ? Merci à tous !

曾经蜡笔没有小新曾经蜡笔没有小新2787 Il y a quelques jours582

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-05-17 10:10:00

    S'il est synchrone, le délai est de 5 secondes et node.js est une simple opération monothread, sans ajout de cluster et autres optimisations同步的 延迟 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 rrreee

    Ainsi, lorsque plusieurs requêtes sont initiées en même temps, scénario 1

    Mais généralement dans node.js, il est rare de rencontrer une attente de synchronisation de 5 secondes complètement bloquée, si la situation suivante se produit :

    rrreee

    Le résultat est bien sûr le Scénario 2🎜 🎜Quant à Java, la simultanéité est prise en charge par le multi-threading. Lorsque les performances sont suffisantes, par exemple, la simultanéité n'est que de 3, cela peut être grossièrement considéré comme : Scénario 2. Bien sûr, en raison de la surcharge du thread impliquée, après l'augmentation de la concurrence, son utilisation de la mémoire dépassera de loin le modèle node.js🎜 🎜En fait, c'est pourquoi nous disons que node.js est plus adapté aux scénarios gourmands en E/S et nécessitant peu de calcul. Vous pouvez vous référer à mon autre réponse🎜

    répondre
    0
  • Annulerrépondre