Js如何實現多線程


JS如何實現多線程

   JS為我們提供了一個Worker的類,它的作用就是為了解決這種阻塞的現象。當我們使用這個類的時候,它就會向瀏覽器申請一個新的線程。這個線程就用來單獨執行一個js文件。

var worker = new Worker(js文件路徑);    //這個語句就會申請一個線程用來執行這個js文件。

   在主線程中有一些方法來實現對新線程的控制和數據的接收。在這里,我們只說比較常用的幾個方法。

 //postMessage(msg);
 //postMessage方法把在新線程執行的結果發送到瀏覽器的js引擎線程里
 worker.onmessage = function(){
     //獲取在新線程中執行的js文件發送的數據 用event.data接收數據
     console.log( event.data )
 };
 setTimeout( function(){
     worker.terminate();
     //terminate方法用於關閉worker線程
 },2000)
    
 setTimeout( function(){
     worker = new Worker("js/test22.js");
     //再次開啟worker線程
 },3000)

    新線程中使用postMessage()方法可以向主線程中發送一些數據,主線程中使用worker的onmessage事件來接收這些數據,這樣就實現了js的多線程執行和多線程之間數據的傳遞。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM