javascript - Bagaimanakah js boleh mencapai kesan multi-threading?
伊谢尔伦
伊谢尔伦 2017-05-19 10:26:22
0
5
522

Bagaimana js boleh mencapai kesan berbilang benang?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(5)
过去多啦不再A梦

Pertama, mari kita bincangkan tentang prinsip pelaksanaan JS: apabila enjin js melaksanakan kod js, ia adalah satu-benang, iaitu, hanya satu proses akan melaksanakan kod JS pada masa yang sama, dan fungsi panggil balik juga dilaksanakan satu mengikut urutan satu (dalam susunan acara, bukan kod). Komunikasi tak segerak dan pemasaan dalam JS dilaksanakan oleh utas lain, bebas daripada konteks utas js. Ambil operasi pemasaan JS sebagai contoh Apabila enjin JS melaksanakan operasi setTimeout(callbackFunction, 100), ia akan memberitahu urutan pemasaan bahawa saya memerlukan 100 milisaat pemasaan, dan kemudian enjin JS akan memasuki gelung peristiwa. Selepas 100 milisaat, enjin pemasaan menambahkan acara yang telah tamat tempoh pada baris gilir acara. Enjin JS membaca acara tamat masa daripada baris gilir dan melaksanakan fungsi panggilan balik. Jika berbilang acara ditambahkan pada baris gilir acara pada masa yang sama, enjin JS hanya akan melaksanakan panggilan balik satu demi satu. Perkara yang sama berlaku untuk asynchronous Kod JS memulakan permintaan komunikasi, utas komunikasi melaksanakan operasi komunikasi dan menambah acara penyiapan pada baris gilir acara selepas operasi selesai. Enjin JS mengambil acara dari baris gilir dan memanggil panggilan balik untuk memproses hasil komunikasi. Apabila enjin JS melaksanakan fungsi panggil balik, ia tidak boleh bertindak balas kepada peristiwa lain pada masa yang sama.

黄舟

Pekerja web JS boleh melakukan beberapa operasi berskala besar pada utas latar belakang tanpa menyekat urutan utama; butiran.

洪涛

Javascript adalah satu-benang.

黄舟

Javascript berulir Jika anda ingin mencapai kesan berbilang benang, anda boleh mempertimbangkan node.js untuk mencapai matlamat melalui acara nod.

漂亮男人

Jika ia digunakan dalam penyemak imbas, kini terdapat pekerja perkhidmatan yang boleh menjalankan beberapa js di latar belakang, seperti membuka benang tambahan. Saya tidak tahu banyak tentangnya, tetapi anda boleh mengetahui jika anda memerlukannya

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!