Rumah  >  Soal Jawab  >  teks badan

javascript - Perbandingan senario konkurensi nod dan java, sila bantu jelaskan

Andaikanprogram nod dipasang di bawah satu terasAtur cara ini adalah pelayan http Apabila permintaan masuk, hasilnya dikembalikan dengan kelewatan selama 5 saat (boleh difahami bahawa 5s. penyegerakanmelakukan sesuatu)

Apabila 3 permintaan masuk pada masa yang sama, senario manakah yang akan terhasil:

Senario 1: Permintaan pertama mendapat keputusan selepas 5 saat, permintaan kedua dan ketiga mendapat keputusan selepas 10s dan 15s
Senario 2: Semua permintaan dapatkan hasil selepas 5 saat

Apakah jenis senario yang akan berlaku jika kita bertukar kepada java+tomcat?
曾经蜡笔没有小新曾经蜡笔没有小新2712 hari yang lalu535

membalas semua(1)saya akan balas

  • PHP中文网

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

    Jika ia synchronous, kelewatan ialah 5 saat dan node.js ialah operasi satu benang yang mudah tanpa menambah kelompok dan pengoptimuman lain同步的 延迟 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

    Jadi, apabila berbilang permintaan dimulakan pada masa yang sama, senario 1

    Tetapi biasanya dalam node.js jarang sekali menemui penyegerakan menunggu selama 5 saat yang disekat sepenuhnya, jika situasi berikut berlaku:

    rrreee

    Hasilnya sudah tentu Senario 2🎜 🎜Bagi Java, concurrency disokong oleh multi-threading Apabila prestasi mencukupi, sebagai contoh, concurrency hanya 3, ia boleh dianggap secara kasar sebagai: Senario 2. Sudah tentu, disebabkan overhed benang yang terlibat, selepas konkurensi meningkat, penggunaan memorinya akan jauh melebihi model node.js🎜 🎜Malah, inilah sebabnya kami mengatakan node.js lebih sesuai untuk senario intensif IO dan pengkomputeran rendah. Anda boleh rujuk jawapan saya yang lain🎜

    balas
    0
  • Batalbalas