Rumah > hujung hadapan web > tutorial js > Apakah mekanisme tak segerak nod berdasarkan?

Apakah mekanisme tak segerak nod berdasarkan?

青灯夜游
Lepaskan: 2022-07-11 19:18:27
asal
1602 orang telah melayarinya

Mekanisme tak segerak nod adalah berdasarkan "peristiwa". Node hanya akan memproses satu acara pada masa yang sama dan segera memasuki gelung acara untuk menyemak acara berikutnya selepas selesai. Dengan cara ini, CPU dan memori boleh menumpukan pada pemprosesan satu perkara pada masa yang sama, sambil cuba membenarkan I/O dan operasi lain yang memakan masa dilaksanakan secara selari.

Apakah mekanisme tak segerak nod berdasarkan?

Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 16, komputer DELL G3.

NodeJS adalah benang tunggal mempunyai faedah berikut:

  • Mudah

  • Prestasi tinggi , mengelakkan overhed penukaran benang yang kerap

  • Ia menggunakan sejumlah kecil sumber, kerana ia adalah satu utas, dan dalam keadaan beban berat, penggunaan memori masih sangat rendah

  • Selamat benang, tiada masalah seperti mengunci, membuka kunci dan kebuntuan

Bagaimana untuk menyelesaikan konkurensi tinggi?

nod menggunakan IO tak segerak dan dipacu peristiwa (fungsi panggil balik) untuk menyelesaikan masalah konkurensi tinggi.

Secara umumnya, penyelesaian konkurensi tinggi akan menyediakan model berbilang benang, menyediakan urutan untuk setiap logik perniagaan dan menebus overhed masa panggilan I/O segerak melalui penukaran benang sistem. Seperti apache, terdapat satu utas setiap permintaan.

NodeJS menggunakan model berutas tunggal dan menggunakan kaedah permintaan tak segerak untuk semua I/O untuk mengelakkan penukaran konteks yang kerap untuk acara seterusnya tiba Selepas setiap permintaan I/O tak segerak selesai, ia akan ditolak ke baris gilir acara untuk menunggu pelaksanaan.

Mekanisme tak segerak NodeJS adalah berdasarkan peristiwa Semua pertanyaan I/O, komunikasi rangkaian dan pangkalan data dilaksanakan dalam cara yang tidak menyekat, dan hasil yang dikembalikan diproses oleh gelung acara<.>. Seperti yang ditunjukkan dalam gambar:

Apakah mekanisme tak segerak nod berdasarkan?

Proses Node.js hanya akan memproses satu acara pada masa yang sama Selepas selesai, ia akan segera memasuki gelung acara untuk menyemak acara berikutnya . Kelebihan ini ialah CPU dan memori boleh memfokus pada pemprosesan satu perkara pada masa yang sama, sambil cuba membenarkan I/O dan operasi lain yang memakan masa dilaksanakan secara selari. Untuk serangan sambungan berkelajuan rendah, Node.js hanya menambah permintaan pada baris gilir acara dan menunggu respons sistem pengendalian Oleh itu, tiada overhed berbilang benang, yang boleh meningkatkan keteguhan aplikasi web dan mencegah serangan berniat jahat.

Mekanisme gelung peristiwa

Gelung peristiwa yang dipanggil bermakna NodeJS akan menggunakan mekanisme peristiwa untuk menyelesaikan semua operasi tak segerak, dan terdapat benang yang sentiasa bergelung untuk mengesan baris gilir acara.

Semua logik dalam NodeJS ialah fungsi panggil balik acara, jadi NodeJS sentiasa dalam gelung acara, dan entri program ialah fungsi panggil balik acara pertama dalam gelung acara. Fungsi panggil balik acara boleh mengeluarkan permintaan I/O atau memancarkan acara secara langsung, dan kembali ke gelung acara selepas pelaksanaan. Gelung acara menyemak baris gilir acara untuk acara yang tidak dikendalikan sehingga program tamat. Gelung peristiwa NodeJS tidak dapat dilihat oleh pembangun dan dilaksanakan oleh pustaka libev libev secara berterusan menyemak sama ada terdapat pendengar peristiwa aktif yang boleh dikesan dan tidak keluar dari gelung peristiwa sehingga tiada pendengar peristiwa dikesan dan program tamat. .

Apakah mekanisme tak segerak nod berdasarkan?

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati:

tutorial nodejs!

Atas ialah kandungan terperinci Apakah mekanisme tak segerak nod berdasarkan?. 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