nodejs ialah satu proses. Node mengikut model proses tunggal berutas tunggal, tetapi ia berdasarkan pada mod tidak sekatan terdorong peristiwa, tak segerak, yang boleh digunakan pada senario konkurensi tinggi dan mengelakkan overhed sumber yang disebabkan oleh penciptaan benang dan penukaran konteks antara utas.
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer Dell G3.
Proses
Proses ialah aktiviti menjalankan program dalam komputer pada pengumpulan data tertentu Ia adalah unit asas peruntukan sumber dan penjadualan sistem itu adalah asas struktur sistem pengendalian, dan prosesnya adalah bekas benang (dari ensiklopedia). Proses ialah unit terkecil peruntukan sumber. Apabila kami memulakan perkhidmatan dan menjalankan contoh, kami membuka proses perkhidmatan Sebagai contoh, JVM dalam Java sendiri adalah proses Dalam Node.js, proses perkhidmatan dibuka melalui aplikasi nod.js (fork) proses. Setiap proses yang keluar mempunyai alamat ruang bebas dan timbunan data Satu proses tidak boleh mengakses pembolehubah dan struktur data yang ditakrifkan dalam proses lain Hanya apabila komunikasi IPC diwujudkan, data boleh dikongsi antara proses.
Thread
Thread ialah unit terkecil yang sistem pengendalian boleh melaksanakan penjadualan operasi Pertama sekali, kita mesti faham bahawa thread tergolong dalam proses dan termasuk dalam proses . Satu utas hanya boleh tergolong dalam satu proses, tetapi satu proses boleh mempunyai berbilang utas. Single-threaded Single-threaded bermaksud bahawa proses hanya membuka satu thread adalah single-threaded Program dijalankan secara berurutan (JS asynchronous tidak disebut di sini buat masa ini). dilaksanakan, yang seterusnya boleh dilaksanakan Apabila anda menggunakan satu-benang Apabila pengekodan dalam bahasa belitan, jangan mempunyai terlalu banyak operasi penyegerakan yang memakan masa, jika tidak, utas akan disekat dan tindak balas seterusnya tidak dapat diproses. Jika anda menggunakan Javascript untuk pengekodan, sila manfaatkan ciri operasi tak segerak Javascript sebanyak mungkin.
nodejs proses tunggal didorong peristiwa satu benang
Nod mengikut model satu-utas proses tunggal Benang tunggal nod bermaksud enjin js hanya mempunyai satu contoh, dan Ia dilaksanakan dalam utas utama nodejs, dan nod mengendalikan operasi tak segerak seperti IO dalam cara yang didorong oleh peristiwa. Mod satu utas nod hanya mengekalkan satu utas utama, yang sangat mengurangkan kos pertukaran antara utas, tetapi akan terdapat berbilang utas pekerja untuk melaksanakan operasi tak segerak.
Walau bagaimanapun, utas tunggal nod menghalang operasi intensif CPU daripada dilakukan pada utas utama, jika tidak, utas utama akan disekat. Untuk operasi intensif CPU, proses anak bebas boleh dibuat dalam nod melalui child_process Proses induk-anak berkomunikasi melalui IPC Proses anak boleh menjadi aplikasi luar atau subprogram nod Selepas proses anak dilaksanakan kembali kepada proses induk.
Mekanisme pengendalian Node.js
- Enjin V8 menghuraikan skrip JavaScript.
- Kod yang dihuraikan memanggil API Node.
- Pustaka libuv bertanggungjawab untuk pelaksanaan API Node. Ia memperuntukkan tugas yang berbeza kepada utas pekerja yang berbeza untuk membentuk Gelung Peristiwa, dan mengembalikan hasil pelaksanaan tugas kepada enjin V8 dalam cara tak segerak.
- Enjin V8 mengembalikan hasilnya kepada pengguna.
Gambar ini adalah prinsip operasi keseluruhan Node.js Dari kiri ke kanan, dari atas ke bawah, Node.js terbahagi kepada empat lapisan iaitu aplikasi lapisan, lapisan enjin V8, lapisan API Nod dan lapisan LIBUV.
- Lapisan aplikasi: Iaitu, lapisan interaksi JavaScript, yang paling biasa ialah modul Node.js, seperti http, fs
- Lapisan enjin V8: Iaitu, V8 enjin digunakan untuk menghuraikan sintaks JavaScript, dan kemudian Berinteraksi dengan API lapisan bawah
- Lapisan NodeAPI: Menyediakan panggilan sistem untuk modul lapisan atas, biasanya dilaksanakan dalam bahasa C, untuk berinteraksi dengan sistem pengendalian.
- Lapisan LIBUV: Ia ialah enkapsulasi peringkat bawah merentas platform yang melaksanakan gelung peristiwa, operasi fail, dll. Ia adalah teras pelaksanaan tak segerak Node.js
Nod. gelung acara js
Node.js biasanya satu proses.
- Urut utama menjalankan V8 dan Javascript
- Berbilang sub-utas dijadualkan melalui gelung acara
Gelung acara:
Gelung acara ialah binaan pengaturcaraan yang digunakan untuk menunggu dan menghantar acara atau mesej dalam program Aturcara utama membaca peristiwa daripada "baris gilir tugasan, jadi keseluruhan mekanisme operasi dipanggil". Gelung Acara (gelung peristiwa)
Baris Gilir Acara:
Apabila permintaan rangkaian pengguna atau operasi tak segerak lain tiba, nod akan meletakkannya dalam Baris Gilir Acara Antaranya, ia tidak akan dilaksanakan dengan serta-merta pada masa ini, dan kod itu tidak akan disekat Ia akan diteruskan sehingga kod utas utama dilaksanakan.
Baris gilir tugas:
Baris gilir tugas" ialah baris gilir acara (juga boleh difahami sebagai baris gilir mesej). Apabila peranti IO menyelesaikan tugas, ia berada dalam "tugas" Menambah acara pada "baris gilir" bermakna tugas tak segerak yang berkaitan boleh memasuki "timbunan pelaksanaan". >
Didorong acara:Intinya adalah untuk menjalankan program melalui gelung utama dan kaedah pencetus acara libuv Nota: Gelung acara mempunyai satu atau lebih baris gilir tugas. Baris gilir tugas ialah sekumpulan tugasan Libuv terutamanya menggunakan modul dipacu peristiwa yang disediakan oleh sistem untuk menyelesaikan IO tak segerak rangkaian dan menggunakan kumpulan benang untuk menyelesaikan fail IO. Di samping itu, pemasa dilaksanakan untuk merangkum penggunaan proses, benang, dll. Malah, gelung peristiwa di sini adalah sama dengan gelung peristiwa js dalam penyemak imbas Benang utama membenarkan kod segerak dan kod tak segerak dilaksanakan dalam urutan pekerja yang sepadan. . Selepas hasil pelaksanaan panggilan balik Letakkannya ke dalam baris gilir acara dan tunggu untuk utas utama untuk melaksanakan tugas baris gilir acara. Jujukan pelaksanaan khusus: 1. Setiap proses Node.js hanya mempunyai satu urutan utama yang melaksanakan kod program, membentuk tindanan konteks pelaksanaan 2. Sebagai tambahan kepada utas utama, "Baris gilir acara" juga dikekalkan. Apabila permintaan rangkaian pengguna atau operasi tak segerak yang lain tiba, nod akan memasukkannya ke dalam Baris Gilir Acara Pada masa ini, ia tidak akan dilaksanakan serta-merta, dan kod itu tidak akan disekat sehingga kod utas utama dilaksanakan. lengkap. 3 Selepas pelaksanaan kod utas utama selesai, kemudian melalui Gelung Acara, iaitu mekanisme gelung acara, mula mengeluarkan acara pertama dari permulaan Baris Acara, dan peruntukkan utas daripada kumpulan utas untuk melaksanakan acara ini , kemudian teruskan keluarkan acara kedua, dan kemudian peruntukkan utas daripada kumpulan utas untuk dilaksanakan, kemudian yang ketiga, dan yang keempat. Urutan utama secara berterusan menyemak sama ada terdapat acara yang tidak dilaksanakan dalam baris gilir acara sehingga semua acara dalam baris gilir acara telah dilaksanakan Selepas itu, apabila acara baharu ditambahkan pada baris gilir acara, urutan utama akan dimaklumkan untuk membawanya keluar pesan dan serahkan kepada EventLoop untuk diproses. Apabila acara dilaksanakan, utas utama akan dimaklumkan, utas utama akan melaksanakan panggilan balik dan utas akan dikembalikan ke kumpulan utas. Nota Benang tunggal node.js yang kita lihat hanyalah urutan utama js yang berkongsi urutan dengan pemaparan ui Operasi tak segerak pada dasarnya masih dilakukan oleh kumpulan benang Selesai, nod menyerahkan semua operasi menyekat kepada kumpulan benang dalaman untuk pelaksanaan Ia hanya bertanggungjawab untuk penjadualan perjalanan pergi dan balik yang berterusan dan tidak melaksanakan operasi I/O sebenar, dengan itu mencapai I/O tak segerak Ini Intipati benang tunggal dan didorong peristiwa nod. 1 Kumpulan utas libuv membuka 4 utas secara lalai dan boleh membuka sehingga 128 utas. (Contohnya: Pada masa lalu, pelayan web hanya boleh menerima sehingga 100 permintaan pada masa yang sama. Jika terlalu banyak, ia tidak akan dapat menerima dan pelayan akan menutup telefon. Apa yang dipanggil tinggi concurrency nodejs bermakna ia boleh menerima 1,000 atau 10,000 permintaan pada masa yang sama Hanya menunggu dalam baris gilir ) 2. Urutan utama melaksanakan js, iaitu kod js melakukan banyak pengiraan dan intensif CPU. Jika utas utama tidak percuma, ia tidak dapat menangani perkara IO, jadi ia akan disekat. 3. Panggilan balik hanya boleh menjamin bahawa permintaan tertentu dilaksanakan mengikut tertib, tetapi tidak dapat menjamin tertib yang berbilang permintaan perlu dikunci semasa mengakses sumber untuk menguncinya. [Pembelajaran yang disyorkan: "tutorial nodejs"]
nod
Node.js bukan bahasa atau rangka kerja Ia hanyalah persekitaran masa jalan JavaScript berdasarkan enjin Google V8, yang merupakan pengembangan fungsi js. Menyediakan rangkaian, fail, resolusi dns, benang proses dan fungsi lain.
libuv ialah perpustakaan pakej yang dibangunkan khas untuk Node.js, menyediakan keupayaan I/O tak segerak merentas platform.
Gelung peristiwa dipacu peristiwa mencapai keselarasan tinggi
Ringkasan:
Atas ialah kandungan terperinci Adakah nodejs satu proses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

React adalah rangka kerja front-end untuk membina antara muka pengguna; Rangka kerja back-end digunakan untuk membina aplikasi sisi pelayan. React menyediakan kemas kini UI yang komponen dan cekap, dan Rangka Kerja Backend menyediakan penyelesaian perkhidmatan backend lengkap. Apabila memilih timbunan teknologi, keperluan projek, kemahiran pasukan, dan skalabiliti harus dipertimbangkan.

Hubungan antara HTML dan React adalah teras pembangunan front-end, dan mereka bersama-sama membina antara muka pengguna aplikasi web moden. 1) HTML mentakrifkan struktur kandungan dan semantik, dan React membina antara muka dinamik melalui komponenisasi. 2) Komponen React Gunakan sintaks JSX untuk membenamkan HTML untuk mencapai rendering pintar. 3) Kitaran Hayat Komponen Menguruskan Rendering HTML dan Kemas kini secara dinamik mengikut keadaan dan atribut. 4) Gunakan komponen untuk mengoptimumkan struktur HTML dan meningkatkan keupayaan. 5) Pengoptimuman prestasi termasuk mengelakkan penyampaian yang tidak perlu, menggunakan atribut utama, dan menjaga tanggungjawab tunggal komponen.

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, dengan komponen terasnya dan pengurusan negeri. 1) Memudahkan pembangunan UI melalui komponen dan pengurusan negeri. 2) Prinsip kerja termasuk perdamaian dan rendering, dan pengoptimuman dapat dilaksanakan melalui React.Memo dan Usememo. 3) Penggunaan asas adalah untuk membuat dan membuat komponen, dan penggunaan lanjutan termasuk menggunakan cangkuk dan konteksapi. 4) Kesalahan biasa seperti kemas kini status yang tidak betul, anda boleh menggunakan ReactDevTools untuk debug. 5) Pengoptimuman prestasi termasuk menggunakan react.memo, senarai virtualisasi dan codesplitting, dan menyimpan kod yang boleh dibaca dan dikekalkan adalah amalan terbaik.

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

Komponen React boleh ditakrifkan oleh fungsi atau kelas, merangkumi logik UI dan menerima data input melalui prop. 1) Tentukan komponen: Gunakan fungsi atau kelas untuk mengembalikan elemen bertindak balas. 2) Rendering Component: React Call Render Kaedah atau Melaksanakan Komponen Fungsi. 3) Komponen multiplexing: Lulus data melalui prop untuk membina UI yang kompleks. Pendekatan kitaran hayat komponen membolehkan logik dilaksanakan pada peringkat yang berbeza, meningkatkan kecekapan pembangunan dan pemeliharaan kod.

React Mode Strict adalah alat pembangunan yang menyoroti isu -isu yang berpotensi dalam aplikasi React dengan mengaktifkan cek tambahan dan amaran. Ia membantu mengenal pasti kod warisan, hayat yang tidak selamat, dan kesan sampingan, menggalakkan amalan reaksi moden.

Serpihan bertindak balas membolehkan kumpulan kanak -kanak tanpa nod dom tambahan, meningkatkan struktur, prestasi, dan kebolehaksesan. Mereka menyokong kekunci untuk rendering senarai yang cekap.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Dreamweaver CS6
Alat pembangunan web visual

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),