Javascript adalah satu benang. Sebagai bahasa skrip penyemak imbas, tujuan utama JavaScript adalah untuk berinteraksi dengan pengguna dan mengendalikan DOM ini menentukan bahawa ia hanya boleh menjadi satu utas, jika tidak, ia akan menyebabkan masalah penyegerakan yang sangat kompleks.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Ciri utama bahasa JavaScript ialah ia berbenang tunggal, yang bermaksud ia hanya boleh melakukan satu perkara pada masa yang sama. Jadi mengapa JavaScript tidak boleh mempunyai berbilang benang? Ini boleh meningkatkan kecekapan.
Benang tunggal JavaScript adalah berkaitan dengan tujuannya. Sebagai bahasa skrip pelayar, 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. Sebagai contoh, katakan JavaScript mempunyai dua utas pada masa yang sama Satu utas menambah kandungan pada nod DOM tertentu, dan utas lain memadamkan nod tersebut.
Jadi, untuk mengelakkan kerumitan, JavaScript telah menjadi satu utas sejak ia dilahirkan Ini telah menjadi ciri teras bahasa ini dan tidak akan berubah pada masa hadapan.
Untuk memanfaatkan kuasa pengkomputeran CPU berbilang teras, HTML5 mencadangkan standard Pekerja Web, yang membenarkan skrip JavaScript mencipta berbilang rangkaian, tetapi urutan anak dikawal sepenuhnya oleh utas utama dan mesti tidak mengendalikan DOM. Oleh itu, piawaian baharu ini tidak mengubah sifat berbenang tunggal JavaScript.
Sesuatu proses merujuk kepada pelaksanaan program, yang menduduki ruang memori yang unik. Anda boleh melihat proses melalui Windows Task Manager (seperti yang ditunjukkan di bawah). Pada masa yang sama, sistem komputer yang sama membolehkan dua atau lebih proses berada dalam keadaan selari, iaitu pelbagai proses. Contohnya, komputer boleh menjalankan WeChat, QQ, dan pelbagai penyemak imbas pada masa yang sama. Sesetengah penyemak imbas berjalan dalam satu proses, seperti firefox dan versi lama IE, dan sesetengahnya dijalankan dalam berbilang proses, seperti chrome dan versi baharu IE.
Sesetengah proses boleh melakukan lebih daripada satu perkara pada masa yang sama, seperti Word, yang boleh melakukan penaipan, semakan ejaan, pencetakan dan perkara lain pada masa yang sama. Dalam proses, jika anda ingin melakukan berbilang perkara pada masa yang sama, anda perlu menjalankan berbilang "subtugas" pada masa yang sama Kami memanggil ini "subtugas" dalam urutan proses.
Thread merujuk kepada unit penjadualan asas CPU, proses lengkap pelaksanaan program dan unit pelaksanaan bebas dalam proses. Multithreading merujuk kepada mempunyai beberapa utas berjalan pada masa yang sama dalam proses. Pelayar menjalankan berbilang benang. Contohnya, anda boleh menggunakan penyemak imbas untuk memuat turun, mendengar lagu dan menonton video pada masa yang sama. Di samping itu, kita perlu tahu bahawa ciri utama bahasa JavaScript ialah satu utas Untuk memanfaatkan kuasa pengkomputeran CPU berbilang teras, HTML5 mencadangkan standard Pekerja Web. , yang membenarkan skrip JavaScript membuat berbilang urutan, tetapi urutan anak tertakluk sepenuhnya kepada kawalan utas utama dan tidak boleh memanipulasi DOM. Oleh itu, piawaian baharu ini tidak mengubah sifat berbenang tunggal JavaScript.
Memandangkan setiap proses perlu melakukan sekurang-kurangnya satu perkara, proses mempunyai sekurang-kurangnya satu urutan. Sudah tentu, proses yang kompleks seperti Word boleh mempunyai berbilang benang, dan berbilang benang boleh dilaksanakan pada masa yang sama Kaedah pelaksanaan berbilang benang adalah sama seperti berbilang proses Sistem pengendalian juga dengan cepat bertukar antara berbilang benang. membenarkan setiap Benang semua berjalan secara bergantian dan kelihatan dilaksanakan serentak. Sudah tentu, benar-benar melaksanakan berbilang benang secara serentak memerlukan CPU berbilang teras untuk dilakukan.
Kelebihan utas tunggal: Pengaturcaraan berurutan adalah mudah dan mudah difahami
Kelemahan utas tunggal: Kecekapan rendah
Kelebihan multi-threading: Boleh meningkatkan penggunaan CPU dengan berkesan
Kelemahan multi-threading:
Tutorial lanjutan javascript]
Atas ialah kandungan terperinci Apakah benang javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!