Rumah  >  Artikel  >  hujung hadapan web  >  Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!

Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!

青灯夜游
青灯夜游ke hadapan
2021-08-13 10:55:392318semak imbas

Apakah I/O tidak menyekat dalam Node.js? Artikel ini menggunakan contoh untuk membantu anda memahami I/O tanpa sekatan dalam Node.js, saya harap ia akan membantu anda.

Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!

Ditulis di hadapan

Saya sudah lama ingin belajar Node.js, saya rasa bahagian hadapan mesti faham ilmu server-side dan boleh berdikari saya menyiapkan satu projek full-stack yang kecil, tetapi atas faktor masa, setelah mempelajari beberapa asas semester lepas, saya tidak sempat lagi untuk belajar kursus hari ini, dan saya di sini untuk menguji anda sekali lagi dengan Node.js! ! ! [Pembelajaran yang disyorkan: "tutorial nodejs"]

  • I/O ialah input/output, input dan output sistem
  • menyekat I /O Perbezaan daripada I/O tidak menyekat ialah sistem menerima input semasa tempoh output, bolehkah ia menerima input lain?

Pergi ke kantin untuk makan: kita semua kena beratur untuk dapatkan makanan

Proses kami ialah: beratur------> ;tunggu orang depan dapat makanan--- ----->Giliran kami menyediakan makanan sendiri------->Mula makan
  • Makan di luar: memesan makanan di restoran

    Sekarang kami Prosesnya ialah: Duduk-------> Order-------> -> Mula makan
  • Cuba mula Gunakan beberapa perkara pelik dalam penurunan harga

    Beratur untuk memesan makanan berbanding memesan makanan di restoran

  • Bagi kita yang memesan makanan Contohnya:

  • Beratur untuk makanan menghalang I/O
  • Memesan makanan di restoran adalah I/O tidak menyekat

    • Teruskan Mari lihat ayat di bahagian atas:
  • Sistem menerima input Semasa tempoh output, bolehkah ia menerima input lain?

Dalam Chestnut, sistem = menghidangkan makanan di kafeteria Makcik atau pelayan restoran, input = pesanan, output = menghidangkan (hidang makanan)

The makcik di kantin hanya boleh menghidangkan nasi satu persatu---------> -menghalang I/O

Malah, masalah ini diajar oleh guru sekolah rendah Kami

Xiaofang membantu ibunya membuat kerja rumah. basuh pakaian dalam mesin basuh (20 minit), sapu lantai (10 minit), kemas meja (10 minit), dan sidai pakaian (5 minit) ). Bolehkah anda mereka bentuk urutan baharu yang bijak dan munasabah supaya Xiaofang dapat menyelesaikan perkara ini dalam sekurang-kurangnya ( ) minit?

A.20B.25

C.30

D.35

Tidak sangka ? (Sebenarnya tak sangka~)

Dalam proses ini, kita menggunakan mesin basuh untuk mencuci pakaian = input, dan mengeringkan pakaian = output Semasa mesin basuh mencuci pakaian, kita boleh lakukan perkara lain, jadi Ini adalah milik

I/O tidak menyekat

.

Berfikir

Untuk memahami I/O yang tidak menyekat, apakah perkara pertama yang perlu ditentukan?

Kita perlu pastikan ada sistem input/output. Fikirkan sama ada I/O lain boleh dilakukan semasa proses I/O.

Boleh------>Tidak menyekat

    Tidak boleh------->Menyekat
    • Tulis buah berangan
    Mula-mula buat
  • baharu, kemudian buka front-end vs-kod kami, buka terminal, jalankan
untuk memasang pakej glob untuk membantu kami memerhati lebih mudah Sama ada I/O disekat.

Mari kita lihat menyekat I/O dahulu

Tampal kod dahulu:

index.jsnpm install glob

Pertama, gunakan require untuk memperkenalkan pakej glob kami glob.sync untuk melakukan operasi mencetak direktori Semasa mencetak hasilnya, gunakan masa/timeEnd untuk merekodkan masa dan lihat berapa banyak masa yang diperlukan untuk nod melaksanakan operasi ini.

Masukkan

dalam terminal untuk menjalankan fail ini terus index.js

const glob = require('glob');

var result = null;
console.time('glob')
result = glob.sync(__dirname + '/**/*')
console.timeEnd('glob')
console.log(result)

Lihat baris pertama Ia mengambil masa 20.93 milisaat untuk melaksanakan ini jumlah Untuk pelayan, ia sudah agak besar.

node index.jsLihat I/O tidak menyekat

Pergi terus ke kod: Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!

Kali ini, fungsi panggil balik digunakan untuk beroperasi, kerana pencetakan hasilnya sangat praktikal Terlalu banyak baris, kami menggantikannya dengan mencetak 'hasil mendapat', dan melakukan pernyataan cetakan selepas masa selesai, mari lihat hasilnya:

Pertama sekali, inilah masanya: 3.258ms Berbanding dengan 20.93 sebelumnya, ia adalah lebih sedikit. Selepas itu, ia adalah penyataan yang kita keluarkan want dicetak. Dalam erti kata lain, ia Operasi lain dilakukan antara input dan output, yang tidak memberi kesan kepada keputusan dan mengambil masa yang lebih singkat!
const glob = require('glob');
var result = null;
console.time('glob')
glob(__dirname + '/**/*',function(err,res){
    result = res;
    // console.log(result)
    console.log('got result');
})
console.timeEnd('glob')
console.log('今天你卷了没?')

Kesimpulan

Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!

Pemahaman saya: I/O tanpa sekatan membolehkan kami mengurangkan banyak masa menunggu, dan semasa menunggu, kami juga boleh melakukan beberapa yang lain. Operasi (Dialu-alukan untuk memberi nasihat!!!)

Tiada apa-apa yang mutlak. Ia tidak bermakna I/O yang tidak menyekat adalah baik. Sebagai contoh, jika berlaku kemalangan di kalangan para tetamu tunggu pelayan ini, yang akan menjejaskan kualiti keseluruhan (boleh difahami sebagai pelayan yang menyekat I/O); tidak akan menjejaskan kualiti keseluruhan, dan mengupah beberapa pelayan akan memerlukan usaha yang sepadan.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Apakah I/O tidak menyekat dalam Node.js? Fahami dengan contoh!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:掘金--Ned. Jika ada pelanggaran, sila hubungi admin@php.cn Padam