Rumah  >  Artikel  >  hujung hadapan web  >  Adakah nod semua berjalan dengan benang tunggal?

Adakah nod semua berjalan dengan benang tunggal?

WBOY
WBOYasal
2022-06-15 16:57:452440semak imbas

Nod berjalan dalam satu utas, menggunakan mod tidak sekatan tak segerak berutas tunggal; berjalan pada utas utama, dan operasi tak segerak yang lain juga dilaksanakan oleh utas bebas Pada masa yang sama, nod berbenang tunggal secara lalai, dan "node.js" tidak boleh menggunakan sumber berbilang teras.

Adakah nod semua berjalan dengan benang tunggal?

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

Adakah semua nod berjalan dalam satu urutan?

Apabila bercakap tentang nod, kita boleh memikirkan perkataan seperti benang tunggal, IO tak segerak dan dipacu peristiwa. Perkara pertama yang perlu dijelaskan ialah sama ada nod benar-benar satu-benang Jika ia adalah satu-benang, maka di manakah IO tak segerak dan acara berjadual (setTimeout, setInterval, dll.) dilaksanakan.

Sebenarnya, secara tegasnya, nod bukanlah satu-benang. Terdapat banyak jenis benang dalam nod, termasuk:

Benang pelaksanaan enjin JS

Benang pemasa (setTimeout, setInterval)

Benang http tak segerak (ajax)

Apa yang biasa kita panggil single thread bermakna hanya terdapat satu enjin js dalam nod yang berjalan pada thread utama. IO asynchronous lain dan benang berkaitan dipacu peristiwa menggunakan libuv untuk melaksanakan himpunan benang dalaman dan penjadualan benang. Terdapat Gelung Peristiwa dalam libv, dan beralih melalui Gelung Peristiwa boleh mencapai kesan yang serupa dengan pelbagai benang. Ringkasnya, Event Loop mengekalkan tindanan pelaksanaan dan baris gilir acara Jika IO tak segerak dan fungsi pemasa ditemui dalam tindanan pelaksanaan semasa, fungsi panggil balik tak segerak ini akan dimasukkan ke dalam baris gilir acara. Selepas pelaksanaan timbunan pelaksanaan semasa selesai, fungsi panggil balik tak segerak dalam baris gilir acara dilaksanakan dalam susunan tertentu daripada baris gilir acara.

Dalam rajah di atas, daripada timbunan pelaksanaan, kepada baris gilir acara, dan akhirnya fungsi panggil balik dilaksanakan dalam susunan tertentu dalam baris gilir acara, keseluruhan proses adalah versi ringkas Event Loop. Selain itu, apabila fungsi panggil balik dilaksanakan, timbunan pelaksanaan juga akan dijanakan fungsi tak segerak mungkin bersarang di dalam fungsi panggil balik, yang bermaksud timbunan pelaksanaan bersarang. Adakah nod semua berjalan dengan benang tunggal?

Maksudnya, utas tunggal dalam nod bermakna enjin js hanya berjalan pada satu-satunya operasi tak segerak yang lain juga mempunyai utas bebas untuk dilaksanakan Melalui Gelung Peristiwa yang serupa dilaksanakan. Penukaran konteks benang dan penjadualan kumpulan benang. Benang adalah proses terkecil, jadi nod juga merupakan satu proses. Ini menerangkan sebab nod adalah satu-benang dan satu-proses.

Pembelajaran yang disyorkan: "

tutorial video nodejs

"

Atas ialah kandungan terperinci Adakah nod semua berjalan dengan benang tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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