Adakah nodejs satu proses?
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!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Node.js boleh digunakan sebagai rangka kerja bahagian belakang kerana ia menawarkan ciri seperti prestasi tinggi, kebolehskalaan, sokongan merentas platform, ekosistem yang kaya dan kemudahan pembangunan.

Untuk menyambung ke pangkalan data MySQL, anda perlu mengikuti langkah berikut: Pasang pemacu mysql2. Gunakan mysql2.createConnection() untuk mencipta objek sambungan yang mengandungi alamat hos, port, nama pengguna, kata laluan dan nama pangkalan data. Gunakan connection.query() untuk melaksanakan pertanyaan. Akhir sekali gunakan connection.end() untuk menamatkan sambungan.

Terdapat dua fail berkaitan npm dalam direktori pemasangan Node.js: npm dan npm.cmd Perbezaannya adalah seperti berikut: sambungan berbeza: npm ialah fail boleh laku dan npm.cmd ialah pintasan tetingkap arahan. Pengguna Windows: npm.cmd boleh digunakan daripada command prompt, npm hanya boleh dijalankan dari baris arahan. Keserasian: npm.cmd adalah khusus untuk sistem Windows, npm tersedia merentas platform. Cadangan penggunaan: Pengguna Windows menggunakan npm.cmd, sistem pengendalian lain menggunakan npm.

Pembolehubah global berikut wujud dalam Node.js: Objek global: modul Teras global: proses, konsol, memerlukan pembolehubah persekitaran Runtime: __dirname, __filename, __line, __column Constants: undefined, null, NaN, Infinity, -Infinity

Perbezaan utama antara Node.js dan Java ialah reka bentuk dan ciri: Didorong peristiwa vs. didorong benang: Node.js dipacu peristiwa dan Java dipacu benang. Satu-benang vs. berbilang benang: Node.js menggunakan gelung acara satu-benang dan Java menggunakan seni bina berbilang benang. Persekitaran masa jalan: Node.js berjalan pada enjin JavaScript V8, manakala Java berjalan pada JVM. Sintaks: Node.js menggunakan sintaks JavaScript, manakala Java menggunakan sintaks Java. Tujuan: Node.js sesuai untuk tugas intensif I/O, manakala Java sesuai untuk aplikasi perusahaan besar.

Ya, Node.js ialah bahasa pembangunan bahagian belakang. Ia digunakan untuk pembangunan bahagian belakang, termasuk mengendalikan logik perniagaan sebelah pelayan, mengurus sambungan pangkalan data dan menyediakan API.

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda
