JavaScript引擎是单线程,然后Web工作者如何解决多线程?

时间:2017-08-18 12:56:13

标签: javascript multithreading web-worker

在某些实时,我们从浏览器中得到了无响应的脚本错误,因此为了解决问题,内存泄漏必须使用Web工作者。

如果Javascript是单线程,则Javascript是单线程应用程序,这意味着不能同时运行多于脚本。

Web Workers如何支持多线程。 Web Workers的主要角色是什么?

JavaScript引擎是单线程的,然后Web工作者如何解决多线程?  我是网络工作者的新手,在Html5网络工作者支持网络工作者: 如何模拟线程。

post message =>发送消息。 OnMessage =>接收消息。

Javascript承诺支持异步操作的延迟句柄,并且在angular2中Rxjs支持异步操作。

在实时应用中,我必须添加网络工作者,如何测试线程?

This is the sample code for web workers.

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
       <script type="text/javascript">
           //while(true);

           var worker;

           if(window.Worker){
           console.log("workers are available");

           worker = new Worker('worker.js');
           worker.postMessage("Message gets Posted");
           worker.addEventListener('message',function(event){
           console.log(event);
           });
           console.log(worker);
           }
       </script>
    </body>
    </html>


Worker.js
self.addEventListener('message',function(event){
console.log(event);
});


can any One in much Detail.

1 个答案:

答案 0 :(得分:0)

Web worker在单独的线程事件循环中运行。这就是为什么你不能与他们分享任何数据的原因,你必须在发布消息时复制/移动数据。

实际使用的线程数取决于浏览器和平台。