Javascript中的Web worker,线程数和工作者数量?

时间:2015-11-19 16:22:44

标签: javascript web-worker

如果我理解网络工作者单一隔离线程中运行,那么我就无法创建多个工作者。

我找到了这个演示https://nerget.com/rayjs-mt/rayjs.html, 这显示了使用worker在画布上渲染多维数据集的性能优势。

我曾尝试使用5名和15名工人。没有看到渲染速度的任何显着差异。

有没有意义创建很多Web Workers?如果是,那么正确的数字是什么?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:6)

工作人员可能在另一个线程上运行,或者可能不运行。如果您创建了太多线程,它们实际上不会同时运行:此行为是模拟的。由于向工作人员发送/接收消息所需的时间,实际上可能会因为创建太多工作人员而损害您的表现。

可以找到更多信息here

  

区分软件线程与硬件线程非常重要。软件线程是程序创建的线程。硬件线程是真实的物理资源。芯片上每个内核可能有一个硬件线程,或者更多,例如英特尔超线程技术。

     

当软件线程多于硬件线程时,操作系统通常会采用循环调度。每个软件线程都会在硬件线程上运行,称为时间片。当时间片用完时,调度程序挂起该线程并允许下一个线程等待其在硬件线程上运行。