Javascript BUKAN single threaded!!

王林
Lepaskan: 2024-07-23 11:57:20
asal
690 orang telah melayarinya

TIDAK! anda tidak salah mengetahui bahawa JavaScript ialah bahasa berulir tunggal. Ia adalah bahasa satu-benang yang mempunyai akses kepada satu utas utama untuk melaksanakan kod. Oleh itu, apabila kita bercakap tentang pengaturcaraan segerak, kita bercakap tentang utas tunggal ini melakukan semua pengangkatan berat dan melaksanakan kod kita.
Image description

Tetapi pada hakikatnya enjin V8 dan Node.js menggunakan perpustakaan c yang dipanggil libuv untuk mendapatkan akses kepada enam utas tambahan. Dua daripada ini digunakan untuk melakukan kutipan sampah dan selebihnya digunakan untuk melakukan tugas latar belakang seperti pengaturcaraan tak segerak.

Ya. Apabila kita mengatakan bahawa kod adalah tak segerak atau tidak menyekat, perkara yang sebenarnya berlaku ialah kod async dihantar ke utas tambahan ini dengan panggilan balik dan utas utama terus melakukan kerjanya tanpa menyekat kod yang lain.

Javascript is NOT single threaded!!
Apabila kod async selesai, fungsi panggil balik ditolak ke dalam baris gilir acara dengan sama ada ralat atau data yang diperlukan. Kemudian gelung acara menolaknya ke dalam timbunan panggilan dan ledakan kami mendapat hasil kami, untuk memahami ini dengan beberapa kod. Mari lihat kaedah fail baca modul fs.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})
Salin selepas log masuk

Dalam kod di atas kaedah fail baca dihantar ke utas latar belakang. Bacaan akan berlaku di latar belakang, dan apabila itu selesai panggilan balik ditolak ke dalam baris gilir acara dengan sama ada ralat atau data.

Javascript is NOT single threaded!!

Sebaik sahaja dalam timbunan panggilan, panggilan balik dilaksanakan dan kita ditinggalkan sama ada ralat atau data sebagai output.
Terima kasih kerana membaca Saya harap saya dapat menerangkan tentang cara berulir tunggal dalam Javascript.

Atas ialah kandungan terperinci Javascript BUKAN single threaded!!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan