Rumah > Artikel > hujung hadapan web > Adakah javascript mempunyai berbilang benang?
Tiada berbilang benang dalam JavaScript; JavaScript hanya boleh dilaksanakan secara berurutan dalam satu urutan, jadi jurubahasa JavaScript dalam penyemak imbas adalah satu utas dan tidak menyokong berbilang benang walaupun JavaScript mempunyai berbilang teras , Ia hanya boleh dibuat untuk menjalankan tugas pada satu utas yang dipanggil utas utama Tujuan utamanya adalah untuk berinteraksi dengan pengguna dan mengendalikan DOM Jika ia bukan satu utas, ia akan membawa isu penyegerakan yang sangat kompleks.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.
Javaskrip bukan berbilang benang, JavaScript adalah satu benang.
Sebagai bahasa skrip penyemak imbas, tujuan utama JavaScript adalah untuk berinteraksi dengan pengguna dan memanipulasi DOM. Ini menentukan bahawa ia hanya boleh menjadi satu-benang, jika tidak, ia akan menyebabkan masalah penyegerakan yang sangat kompleks.
Urutan pada asasnya ialah satu proses yang boleh digunakan oleh atur cara untuk menyelesaikan tugasan. Setiap urutan hanya boleh melaksanakan satu tugasan pada satu masa:
Task A --> Task B --> Task C
Setiap tugasan akan dijalankan secara berurutan; satu tugasan mesti diselesaikan sebelum tugasan seterusnya boleh dimulakan.
Seperti yang dinyatakan sebelum ini, banyak komputer kini mempunyai berbilang teras dan oleh itu boleh melakukan berbilang operasi sekaligus. Bahasa pengaturcaraan yang boleh menyokong berbilang benang boleh menggunakan berbilang teras untuk menyelesaikan berbilang tugas serentak:
Thread 1: Task A --> Task B Thread 2: Task C --> Task D
Secara tradisinya, JavaScript adalah satu-benang. Walaupun dengan berbilang teras, anda hanya boleh membuatnya menjalankan tugas pada satu utas yang dipanggil utas utama. Contoh kami di atas berjalan seperti ini:
Main thread: Render circles to canvas --> Display alert()
Adakah js berbilang benang Tidak dinafikan bahawa js sendiri hanya boleh dijalankan dalam satu utas, jadi ia tidak menyokong berbilang benang :
Pertama sekali, akan ada sekurang-kurangnya tiga utas dalam penyemak imbas: utas enjin js (memproses js), utas pemaparan gui (perenderan halaman), utas pencetus masa penyemak imbas (mengawal interaksi)
Oleh kerana js boleh Mengendalikan elemen DOM akan menjejaskan hasil rendering GUI Oleh itu, benang enjin JS dan benang rendering GUI adalah saling eksklusif, iaitu apabila benang enjin JS berada dalam keadaan berfungsi, GUI benang rendering dibekukan.
Enjin js dipacu peristiwa dan menggunakan mekanisme berjalan satu benang, iaitu, enjin js hanya akan mengambil tugasan secara berurutan daripada senarai tugas dan melaksanakannya.
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Adakah javascript mempunyai berbilang benang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!