Rumah > Artikel > hujung hadapan web > Kuasai dengan pantas model_node.js dipacu peristiwa Node.js
1. Model rangkaian benang tradisional
Sebelum memahami model dipacu peristiwa Node.js, kami terlebih dahulu memahami model rangkaian utas tradisional Selepas permintaan memasuki pelayan web (IIS, Apache), urutan akan diperuntukkan dalam kumpulan utas untuk menyelesaikan pemprosesan permintaan. secara linear dan serentak sehingga Pemprosesan permintaan selesai dan respons dikeluarkan, dan kumpulan benang dikitar semula selepas selesai.
Ini akan membawa masalah berikut:
1. Disebabkan bilangan utas yang terhad dalam kumpulan utas, akan ada permintaan yang kerap menunggu, dan dalam kes yang teruk, pelayan mungkin menutup telefon
2. Untuk keselarasan tinggi, kunci akan digunakan untuk menghalang data kotor daripada muncul. Sesetengah transaksi I/O mungkin mengambil masa yang lama, yang akan menyebabkan beberapa urutan menunggu, yang tidak cekap
2. Model dipacu acara
1. Terdapat baris gilir acara dalam Node.js Setiap tugasan akan dimasukkan ke dalam baris gilir acara, dan fungsi panggil balik akan ditinggalkan untuk memproses keputusan Benang gelung acara (secara peribadi terasa agak serupa dengan RunLoop ios) memproses baris gilir acara dalam tugasan sehingga fungsi panggil balik tidak wujud lagi.
2. Dalam kes tidak menyekat, ia dimasukkan ke dalam baris gilir acara sebagai fungsi dengan panggilan balik, dan diekstrak dan dilaksanakan dalam urutan gelung acara.
3. Apabila menghadapi sekatan I/O semasa pelaksanaan (membaca fail, menanya pangkalan data, meminta soket, mengakses perkhidmatan jauh, dll.), utas gelung acara tidak akan berhenti menunggu keputusan, tetapi akan terus melaksanakan baris gilir . Tugas seterusnya dalam tidak akan dilaksanakan dalam utas gelung peristiwa. Apabila fungsi dilaksanakan, Node.js meletakkan fungsi panggil balik dalam baris gilir acara dan susunannya ditentukan oleh seberapa cepat fungsi itu selesai.
4. Seperti yang dinyatakan dalam 1, apabila menghadapi sekatan I/O, utas gelung tidak akan menunggu keputusan, sebaliknya akan melaksanakan tugas seterusnya dalam baris gilir >
Node.js menggunakan panggilan balik acara untuk mengelakkan menunggu untuk menyekat I/O dan melaksanakan kumpulan benang di latar belakang Apabila menghadapi tugas menyekat I/O, ia akan memperoleh utas daripada kumpulan benang dan meletakkan fungsi dan panggil balik dalam Dilaksanakan di sana, fungsi panggil balik yang dilaksanakan pada benang yang disekat masih boleh menambah acara pada baris gilir acara.
Di atas adalah semua tentang model dipacu peristiwa Node.js saya harap ia akan membantu pembelajaran semua orang.