Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Mengapa nod boleh mempunyai konkurensi yang tinggi

Mengapa nod boleh mempunyai konkurensi yang tinggi

WBOY
Lepaskan: 2022-04-22 14:45:21
asal
3107 orang telah melayarinya

Oleh kerana nod mempunyai ciri "didorong urus niaga" dan "I/O" tak segerak, ia merupakan operasi tak segerak yang tidak menyekat, untuk setiap permintaan serentak, pelayan mendaftarkan peristiwa penembakan untuk permintaan dan memberikan panggilan balik fungsi dalam urutan. Laksanakan pemprosesan acara, laksanakan fungsi panggil balik selepas pemprosesan selesai, dan kemudian laksanakan pemprosesan acara seterusnya, supaya nod boleh mencapai konkurensi tinggi.

Mengapa nod boleh mempunyai konkurensi yang tinggi

Persekitaran pengendalian tutorial ini: sistem Windows 10, nodejs versi 12.19.0, komputer Dell G3.

Mengapa nod boleh mempunyai konkurensi tinggi

Nodejs ialah operasi tak segerak yang tidak menyekat. Untuk setiap permintaan serentak, pelayan mendaftarkan peristiwa penembakan (I/O) untuk permintaan dan memberikan fungsi panggil balik (proses ini tidak menyekat permintaan sambungan baharu). Laksanakan pemprosesan peristiwa (I/O) mengikut turutan, laksanakan fungsi panggil balik selepas pemprosesan selesai, dan kemudian laksanakan pemprosesan peristiwa seterusnya (I/O).

Sebelum menerangkan sebab nod boleh mencapai konkurensi tinggi, anda juga mungkin memahami beberapa ciri lain nod:

Berbenang tunggal

Mari Mula-mula Untuk menjelaskan konsep, nod adalah berbenang tunggal, yang sama dengan ciri JavaScript dalam penyemak imbas, dan dalam nod, utas utama JavaScript dan utas lain (seperti utas I/O) tidak boleh berkongsi keadaan.

Kelebihan benang tunggal ialah:

  • Tidak perlu memberi perhatian kepada masalah penyegerakan keadaan antara benang seperti berbilang benang

  • Tidak boleh menggunakan sepenuhnya CPU berbilang teras
  • Sebilangan besar pengiraan yang menduduki CPU akan menyebabkan aplikasi disekat (iaitu tidak sesuai untuk CPU- intensif)

    Ralat akan menyebabkan keseluruhan aplikasi keluar
  • Asynchronous I/O

  • Anda mungkin bertanya, memandangkan nod berbenang tunggal, semua acara sedang diproses pada satu utas, bukankah ia sangat tidak cekap dan bertentangan dengan konkurensi tinggi?
  • Sebaliknya, prestasi nod adalah sangat tinggi. Salah satu sebabnya ialah nod mempunyai ciri I/O tak segerak Setiap kali permintaan I/O berlaku, nod akan menyediakan benang I/O untuk permintaan itu. Kemudian nod tidak akan mengambil berat tentang proses operasi I/O, tetapi akan terus melaksanakan acara pada utas utama Ia hanya perlu diproses apabila permintaan mengembalikan panggilan balik. Maksudnya, nod menjimatkan banyak masa menunggu permintaan.

  • Ini juga merupakan salah satu sebab penting mengapa nod menyokong konkurensi tinggi

Malah, bukan sahaja operasi I/O, kebanyakan operasi nod dilakukan dalam cara tak segerak ini. Ia seperti penganjur. Ia tidak perlu melakukan segala-galanya secara peribadi Ia hanya perlu memberitahu ahli cara untuk beroperasi dengan betul, menerima maklum balas, dan mengendalikan langkah-langkah penting, supaya seluruh pasukan boleh berjalan dengan cekap.

Didorong oleh transaksi

Anda mungkin ingin bertanya lagi, bagaimana nod mengetahui bahawa permintaan telah mengembalikan panggilan balik dan bilakah ia harus mengendalikan panggilan balik ini?

Jawapannya ialah satu lagi ciri nod: pemacu transaksi, iaitu, utas utama menjalankan program melalui gelung peristiwa yang mencetuskan gelung peristiwa

Ini adalah satu lagi sebab penting mengapa nod menyokong konkurensi tinggi

Pembelajaran yang disyorkan: "

tutorial video nodejs

"

Atas ialah kandungan terperinci Mengapa nod boleh mempunyai konkurensi yang tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan