2015-11-19 94 views
2

如果我理解正确网络工作者运行在单个孤立的线程,因此我没有得到创建多个工人的重点。在Javascript中的Web工作人员,线程数量和工作人员?

我发现此演示https://nerget.com/rayjs-mt/rayjs.html, 显示使用工作人员在画布上呈现多维数据集的性能优势。

我试图使用5和15名工人。在渲染速度上看不到任何显着差异。

是否有任何意义要创建大量的Web工作者?如果是,那么正确的数字是多少?

任何帮助将不胜感激!

+0

对我来说,该演示的结果是不一致的,除非同一测试连续运行5次左右。 –

+0

@DavidSherret - 对我来说是一样的,有时候2个工作人员使得立方体比5更快。这就是问题是否有一点可以使用。 – andrey

回答

6

一名工人可能在另一个线程上运行,或者可能不运行。如果创建的线程太多,它们实际上不会同时运行:这种行为是模拟的。由于发送/接收来自/来自工作人员的消息所需的时间,它可能实际上损害了你的表演以创造太多的工作人员。

更多信息可查询here

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

当硬件线程数多于硬件线程数时,操作系统通常使用循环调度。每个软件线程都会在硬件线程上运行,称为时间片。当时间片耗尽时,调度程序暂停该线程并允许下一个线程等待轮到它在硬件线程上运行。