Rumah >hujung hadapan web >tutorial js >JavaScript berasaskan pseudo-threading
Apakah pemasa javascript?
pemasa JavaScript membolehkan anda menjadualkan pelaksanaan kod selepas kelewatan yang ditentukan. Mereka menyediakan dua fungsi utama:
setTimeout(function, msec[, arg1 … argN])
milisaat. Argumen pilihan boleh diserahkan kepada fungsi. msec
setInterval(function, msec[, arg1 … argN])
, tetapi berulang kali melaksanakan fungsi setiap setTimeout
milisaat sehingga dibatalkan. msec
dan clearTimeout()
digunakan untuk membatalkan clearInterval()
dan setTimeout
operasi masing -masing. Contohnya: setInterval
var timerID = setTimeout(myfunction, 500); clearTimeout(timerID); // myfunction() will never be calledNota penting:
setTimeout
rujukan setInterval
(tiada kurungan). akan melaksanakan segera. setTimeout(myfunction(), 500);
myfunction()
masa milisaat adalah anggaran. Fungsi melaksanakan apabila penyemak imbas terbiar selepas kelewatan yang ditentukan. setTimeout(f1, 50); setTimeout(f2, 50);
f2()
Oleh kerana kod masa tidak dilaksanakan dengan segera, benang utama penyemak imbas dibebaskan untuk tugas lain. Ini membolehkan kita memecahkan proses yang panjang ke dalam ketulan yang lebih kecil. Contohnya, untuk melaksanakan fungsi
,, dan f1()
secara berurutan: f2()
f3()
function ProcessThread(func) { var ms = 20; setTimeout(function() { func.shift()(); if (func.length > 0) { //Improved condition check setTimeout(arguments.callee, ms); } }, ms); } ProcessThread([f1, f2, f3]);membuang dan mengembalikan elemen pertama (fungsi) dari array, yang kemudian dilaksanakan.
Melaksanakan semua fungsi dalam array dengan kelewatan 20ms antara masing -masing. Pendekatan ini berfungsi untuk beberapa fungsi, dengan syarat tiada fungsi tunggal melebihi ambang tamat penyemak imbas. Walau bagaimanapun, memproses dataset besar akan memerlukan teknik yang lebih mantap, yang akan diliputi dalam jawatan masa depan. func.shift()
ProcessThread
Bahagian berikut menjawab soalan umum mengenai pemasa JavaScript dan pseudo-threading. Bahagian FAQ asal telah disusun semula dan ditulis semula untuk kejelasan dan kesimpulan. Contoh khusus telah dipermudahkan.
Apakah pseudo-threading dalam JavaScript? Alam Single-threaded JavaScript bermakna ia mengendalikan satu tugas pada satu masa. Pseudo-Threading mensimulasikan pelbagai threading dengan memecahkan tugas panjang ke bahagian yang lebih kecil, menjadualkan pelaksanaan mereka dengan pemasa, yang membolehkan penyemak imbas mengendalikan tugas lain di antara.
Bagaimanakah pemasa JavaScript berfungsi?
setTimeout()
Bagaimana untuk melaksanakan pseudo-threading menggunakan pemasa JavaScript? setInterval()
Gunakan
.
setInterval()
Keterbatasan pseudo-threading? clearInterval()
Ia tidak membolehkan pelaksanaan selari yang benar; Tugas dijalankan secara berurutan, walaupun dengan tugas penyemak imbas interleaved. Penangguhan yang perlahan.
pseudo-threading vs threading sebenar (mis., Python)? multi-threading Python membolehkan paralelisme yang benar, tetapi memperkenalkan kerumitan seperti keadaan kaum. Pseudo-threading JavaScript lebih mudah tetapi kurang berprestasi untuk tugas-tugas CPU.
Alternatif untuk Pseudo-Threading (janji, async/menunggu)?Menghentikan pseudo-thread? Gunakan
.
Pseudo-Threading dan Web Web? Pekerja berjalan di latar belakang. async/await
Aplikasi praktikal pseudo-threading? pemprosesan imej, pengiraan kompleks, manipulasi data, dan lain-lain.
clearInterval()
Perpustakaan/rangka kerja untuk pseudo-threading?
boleh membantu menguruskan operasi asynchronous. Pemasa terbina dalam JavaScript biasanya mencukupi.
Atas ialah kandungan terperinci JavaScript berasaskan pseudo-threading. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!