Rumah > Artikel > hujung hadapan web > Adakah ia berbilang benang dalam nodejs?
Node.js ialah persekitaran masa jalan JavaScript berdasarkan enjin Chrome V8 yang boleh digunakan untuk pengaturcaraan sebelah pelayan. Sifat benang tunggalnya ialah salah satu ciri yang paling ketara, tetapi itu tidak bermakna Node.js tidak boleh mengendalikan berbilang tugas atau aliran data.
Jadi dalam Node.js, adakah ia menyokong pelbagai benang? Malah, Node.js hanya mempunyai satu urutan dan semua permintaan I/O adalah tidak segerak Ciri ini menjadikan prestasinya sangat cekap apabila mengendalikan permintaan serentak.
Walau bagaimanapun, utas tunggal Node.js hanya ditunjukkan dalam pemprosesan gelung peristiwa bagi utas utama, bukan bilangan utas yang menjalankan kod. Node.js menggunakan pustaka libuv untuk mengurus semua operasi I/O itu sendiri berdasarkan kumpulan utas Ia mencipta kumpulan utas berdasarkan bilangan teras CPU Setiap utas bertanggungjawab untuk memproses operasi I/O dan tak segerak yang lain acara operasi , dan acara ini diletakkan dalam baris gilir acara.
Apabila permintaan tiba di pelayan Node.js, Node.js akan menyerahkannya kepada gelung peristiwa Gelung peristiwa akan menghantar permintaan itu ke dalam kumpulan utas dan urutan itu akan melengkapkan permintaan. Sambil menunggu I/O selesai, utas boleh melaksanakan kod JavaScript lain.
Apabila permintaan I/O selesai, urutan akan menolak acara ke baris gilir acara dan gelung acara akan bertanggungjawab untuk memproses acara dalam baris gilir mengikut urutan pendaftaran. Jika acara bergantung pada acara lain, gelung acara akan menunggu acara selesai sebelum memproses acara lain.
Dalam Node.js, pembangun boleh menggunakan modul kluster untuk melaksanakan pemprosesan berbilang proses, tetapi ini bukan berbilang benang, tetapi mencipta berbilang proses berdasarkan bilangan teras CPU untuk mengendalikan permintaan yang berbeza.
Oleh itu, boleh dikatakan bahawa tidak ada multi-threading sebenar dalam Node.js, tetapi ciri I/O asynchronous thread tunggal membolehkannya mengendalikan permintaan serentak dengan mudah tanpa disekat oleh proses sistem pengendalian. / Terhad oleh overhed yang disebabkan oleh penukaran konteks benang. Dalam perkembangan baru-baru ini, Node.js memperkenalkan modul worker_threads, yang boleh mencipta dan mengawal berbilang benang sebenar pada masa jalan untuk mengendalikan tugasan intensif pengiraan, tetapi ia masih dalam peringkat percubaan.
Ringkasnya, Node.js tidak melibatkan isu berbilang benang, tetapi dengan sokongan gelung peristiwa dan kumpulan benang, ia boleh mengendalikan permintaan serentak yang kompleks dengan mudah.
Atas ialah kandungan terperinci Adakah ia berbilang benang dalam nodejs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!