Rumah > Artikel > hujung hadapan web > Apakah mekanisme tak segerak nod berdasarkan?
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.
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:
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. . 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!